在使用Android Studio IDE配置Gradle构建的Android java项目中,我希望根据构建环境更改变量。
例如,如果Utils.java中有public static final boolean USE_LOCAL_BACKEND = false;
,则生产应始终具有false
值,并且开发可能希望true
使用本地服务器进行调试
我不是Gradle的专家,我非常感谢有关如何配置我的项目以获得每个环境的两个不同properties
文件的详细指南,每个文件都有相同的密钥,但是不同的价值观。
答案 0 :(得分:2)
到目前为止,最简单的解决方案是将USE_LOCAL_BACKEND
移至BuildConfig
:
android {
// other stuff here
buildTypes {
debug {
buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
}
release {
buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
}
mezzanine.initWith(buildTypes.release)
mezzanine {
buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
}
}
}
在此,我在SERVER_URL
上为三种构建类型(String
,BuildConfig
和自定义{{1}定义debug
release
字段一个)。你可以对mezzanine
boolean
做同样的事情。然后,您可以在Java代码中将其称为USE_LOCAL_BACKEND
。