Java 如何覆盖Android debug VS release VS main中的变量?
我有一个变量,我希望在调试模式下使用src/debug/java版本覆盖该变量: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
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
已经执行了您在更新中编写的操作。我在使用变体时遇到此错误,这可能就是我无法解决问题的原因: