I am trying to define buildConfigVariable depending on the + buildType style. Ideally, this is what I want
productFlavors { strawberry { buildConfigField "String", "WS_API_KEY", name + variant.buildType.name } ... more flavors .. }
name contains strawberries, but I donβt know if it is possible to access the buildType option.
Hosted outside of Android closure, I have access to BuildType and the option, but then I cannot call 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"]
I can easily create a Java factory and return the corresponding API_KEY depending on some BuildConfig constants, but I would prefer to keep the code configuration agnostic.
android android-gradle android-productflavors
Maragues Mar 19 '14 at 12:45 2014-03-19 12:45
source share