如何根据当前的buildType设置变量,我试过这个
String url = "https://dev.myurl.com"
tasks.whenTaskAdded { task ->
if (task.name == 'generateReleaseBuildConfig' || task.name == 'generateDebugBuildConfig') {
if (task.name == 'generateReleaseBuildConfig') {
url = "https://prod.myurl.com"
}
}
}
但是无论当前的buildType是Release还是Debug,任务generateReleaseBuildConfig
和generateDebugBuildConfig
都被执行,所以我永远不会得到取决于当前buildType的值。我指定此变量稍后在构建脚本中使用,而不是在Java代码中使用。
我尝试了几个solutions found in SO,但没有一个适合我
答案 0 :(得分:1)
这个例子来自我自己的应用程序。它工作正常
在您的app\build.gradle
buildTypes {
debug {
...
buildConfigField "String", "SERVER_URL", '"http://..."'
}
release {
...
buildConfigField "String", "SERVER_URL", '"http://..."'
}
}
重要提示:同步您的gradle
然后在你的课堂上跟随电话
String URL = BuildConfig.SERVER_URL
答案 1 :(得分:0)
您可以使用buildConfigField。它看起来像这样:
buildConfigField('String', 'API_URL', "\"URL\"")
将其置于gradle中,位于不同的buildType下。并且要使用它:
BuildConfig.API_URL
这将返回此值取决于buildType
更新
确定你放错了吗?
buildTypes {
debug {
//...
buildConfigField('String', 'API_TEST', "\"URL\"")
}
release {
//...
buildConfigField('String', 'API_TEST', "\"URL\"")
}
}