Я пытаюсь определить buildConfigVariable в зависимости от стиля + buildType. В идеале, это то, что я хочу
productFlavors {
strawberry {
buildConfigField "String", "WS_API_KEY", name + variant.buildType.name
}
... more flavors ..
}
name содержит "клубнику", но я не знаю, можно ли получить доступ к варианту 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 factory и вернуть соответствующий API_KEY
в зависимости от некоторых констант BuildConfig
, но я бы предпочел сохранить агностик конфигурации кода.