Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何覆盖Android debug VS release VS main中的变量?_Java_Android - Fatal编程技术网

Java 如何覆盖Android debug VS release VS main中的变量?

Java 如何覆盖Android debug VS release VS main中的变量?,java,android,Java,Android,我有一个变量,我希望在调试模式下使用src/debug/java版本覆盖该变量: public static final boolean DEBUG = true; 我尝试将src/debug/java中的变量设置为true,src/main/java中的变量设置为false,但它没有被覆盖。有没有办法做到这一点或解决办法 我在build.gradle中尝试了以下内容,但无论是发行版还是调试模式,它都是 debug { buildConfigField "boolean

我有一个变量,我希望在调试模式下使用src/debug/java版本覆盖该变量:

public static final boolean DEBUG = true;
我尝试将src/debug/java中的变量设置为true,src/main/java中的变量设置为false,但它没有被覆盖。有没有办法做到这一点或解决办法

我在build.gradle中尝试了以下内容,但无论是发行版还是调试模式,它都是

    debug {
        buildConfigField "boolean", "REPORT_CRASHES", "false"
    }

    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField "boolean", "REPORT_CRASHES", "true"
    }
还有我的java:

    Log.d(TAG, "BuildConfig.REPORT_CRASHES: " + BuildConfig.REPORT_CRASHES);
    // Both debug and release versions display 'true'
根据上的示例,您可以在gradle文件中使用
buildConfigField
,向
BuildConfig
类添加其他变量:

defaultConfig {
    ....
    buildConfigField "boolean", "DEBUG_FLAG", "false"
}

buildTypes {
    debug {
        buildConfigField "boolean", "DEBUG_FLAG", "true"
    }
    ...
}  

然后使用
BuildConfig.DEBUG\u标志
在代码中引用它。请注意,
BuildConfig
已经包含一个
DEBUG
标志,除了
release
版本外,它在所有版本中都是
true

您应该使用com.main.module.BuildConfig而不是com.dependency.module.BuildConfig…这将解决所有问题。

按照您描述的方式,它应该可以工作。也许发布一个你文件夹结构的截图。很好的推荐。请参阅上面我的编辑。我不知道为什么,但一切都返回真值。您是否通过build variants窗口在调试/发布版本之间切换?需要注意的是,
BuildConfig.debug
已经执行了您在更新中编写的操作。我在使用变体时遇到此错误,这可能就是我无法解决问题的原因: