如何定义属性并将其设置在特定的buildType中?
我已经试过了:
android {
project.ext.set("apis", "[]")
buildTypes {
release {
...
project.apis = [
[
name : "aaaa",
apiJson: "aaaa",
baseUrl: "aaaa"
],
[
name : "bbbb",
apiJson: "bbbb",
baseUrl: "bbbb"
]
]
}
debug{
...
project.apis = [
[
name : "cccc",
apiJson: "cccc",
baseUrl: "cccc"
],
[
name : "dddd",
apiJson: "dddd",
baseUrl: "dddd"
]
]
}
}
func(apis)
}因此,"api“始终具有最后一个块的值。在Gradle构建之前,我如何动态地设置与当前buildType相关的属性?
发布于 2015-08-24 06:34:01
我用这种方法解决了它:
task config << {
def apis
switch (project.gradle.startParameter.taskNames[0]){
case "app:assembleRelease":
project.apis = [
[
name : "aaaa",
apiJson: "aaaa",
baseUrl: "aaaa"
],
[
name : "bbbb",
apiJson: "bbbb",
baseUrl: "bbbb"
]
]
break;
case "app:assembleDebug":
apis = [
[
name : "cccc",
apiJson: "cccc",
baseUrl: "cccc"
],
[
name : "dddd",
apiJson: "dddd",
baseUrl: "dddd"
]
]
]
break;
}
func(apis)
}
preBuild.dependsOn config发布于 2015-08-21 09:44:31
尝试使用buildConfigField。F.e.:
buildConfigField 'String', 'API_URL', '\"http://my.api.com\"'
buildConfigField 'boolean', 'LOG_ENABLED', 'true'在您的代码中:
String api = BuildConfig.API_URL;
if (BuildConfig.LOG_ENABLED){
...
}https://stackoverflow.com/questions/32137209
复制相似问题