在我的应用程序中,我需要获取应用程序的版本代码和名称,因此我在使用以下语句。

 obj.setCurrentVersion("APP " +
 String.valueOf(BuildConfig.VERSION_NAME));
它工作正常,并返回正确的结果。
但是现在,一旦我检查了BuildConfig类的所有值都是空的,它就返回空字符串。
public final class BuildConfig {
    public static final boolean DEBUG = false;
    public static final java.lang.String APPLICATION_ID = "androidx.multidex";
    public static final java.lang.String BUILD_TYPE = "release";
    public static final java.lang.String FLAVOR = "";
    public static final int VERSION_CODE = -1;
    public static final java.lang.String VERSION_NAME = "";

    public BuildConfig() { /* compiled code */ }
}

Build_gradle文件
apply plugin: 'com.android.application'

android {
    signingConfigs {
        config {

        }
    }
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.app.application"
        minSdkVersion 21 //21
        targetSdkVersion 28
        versionCode 16 //15
        versionName "2.0.4"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
为什么会发生这种情况以及如何解决?

最佳答案

您导入了错误的BuildConfig文件
删除您的BuildConfig导入并重新导入您的应用程序模块BuildConfig

关于java - Android BuildConfig类的值为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62857780/

10-12 01:47