我试图定义一个buildConfigVariable取决于香精 + buildType.理想情况下,这就是我想要的
productFlavors {
strawberry {
buildConfigField "String", "WS_API_KEY", name + variant.buildType.name
}
... more flavors ..
}
Run Code Online (Sandbox Code Playgroud)
name确实包含"strawberry",但我不知道是否可以访问variant的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 …Run Code Online (Sandbox Code Playgroud) 我的项目结构如下所示
+ src
+ main // this is my common code
+ java
- LoginScreen // depending on condition launch screen from flavor1 or flavor2
+ res
+ flavor1
+ java
+ res
+ flavor2
+ java
+ res
Run Code Online (Sandbox Code Playgroud)
根据条件,我在main/src 中有 Login 类,必须从flavor1 或flavor2 启动屏幕。
例如:
class LoginScreen{
......
if(true){
// launch ScreenUser from Flavor1 reset of screen flows from falvour1
}else{
// launch ScreenOTP from Flavor2 reset of screen flows from falvour2
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果我为 flavor1 进行构建,它会显示 …
android android-studio build.gradle android-gradle-plugin android-build-flavors