我試圖定義一個buildConfigVariable取決於味道 + buildType。理想情況下,這是我想要的buildConfigField取決於香精+ buildType
productFlavors {
strawberry {
buildConfigField "String", "WS_API_KEY", name + variant.buildType.name
}
... more flavors ..
}
名確實含有「草莓」,但我不知道是否有可能訪問變種的buildType。
放在的Android封我有訪問BuildType和變種外面,但我不能調用buildConfigField
android.applicationVariants.all { variant ->
println "****************************"
println "variant: ${variant.name}"
println "flavor: ${variant.flavorName}"
println "****************************"
if (variant.buildType.name == 'release') {
if (variant.flavorName == 'strawberry') {
buildConfigField "String", "WS_API_KEY", '"strawberry_release"'
} else {
buildConfigField "String", "WS_API_KEY", '"chocolate_release"'
}
} else if(variant.buildType.name == 'debug') {
if (variant.flavorName == 'strawberry') {
buildConfigField "String", "WS_API_KEY", '"strawberry_debug"'
} else {
buildConfigField "String", "WS_API_KEY", '"chocolate_debug"'
}
}
****************************
variant: strawberryRelease
flavor: strawberry
****************************
org.gradle.api.internal.MissingMethodException:
Could not find method buildConfigField()
for arguments [String, WS_API_KEY, "strawberry_release"]
我可以很容易地創建一個Java工廠並返回適當的API_KEY
取決於一些BuildConfig
常量,但我寧願保持代碼配置不可知。
另外:[如何將buildConfigField添加到單個productFlavors?](https://plus.google.com/u/0/112378857970945433614/posts/DoNedk9Vq2e) – JJD