Jes*_*usS 47 android build-tools gradle android-gradle-plugin
我有两种口味,比如香草和巧克力.我也有Debug和Release构建类型,我需要Vanilla Release才能有一个字段为true,而其他3个组合应该是false.
def BOOLEAN = "boolean"
def VARIABLE = "VARIABLE"
def TRUE = "true"
def FALSE = "false"
VANILLA {
debug {
buildConfigField BOOLEAN, VARIABLE, FALSE
}
release {
buildConfigField BOOLEAN, VARIABLE, TRUE
}
}
CHOCOLATE {
buildConfigField BOOLEAN, VARIABLE, FALSE
}
Run Code Online (Sandbox Code Playgroud)
我有一个错误,所以我猜调试和发布技巧不起作用.有可能这样做吗?
Sim*_*mas 95
循环变体并检查其名称:
productFlavors {
vanilla {}
chocolate {}
}
applicationVariants.all { variant ->
println("Iterating variant: " + variant.getName())
if (variant.getName() == "chocolateDebug") {
variant.buildConfigField "boolean", "VARIABLE", "true"
} else {
variant.buildConfigField "boolean", "VARIABLE", "false"
}
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*nko 18
这是一个没有缺乏的解决方案,我在Simas的回答中描述过
buildTypes {
debug {}
release {}
}
productFlavors {
vanilla {
ext {
variable = [debug: "vanilla-debug value", release: "vanilla-release value"]
}
}
chocolate {
ext {
variable = [debug: "chocolate-debug value", release: "chocolate-release value"]
}
}
}
applicationVariants.all { variant ->
def flavor = variant.productFlavors[0]
variant.buildConfigField "boolean", "VARIABLE", "\"${flavor.variable[variant.buildType.name]}\""
}
Run Code Online (Sandbox Code Playgroud)
内摇篮构建系统,buildTypes并且productFlavors是不幸的是两个独立的实体.
据我所知,要完成你想要实现的目标,你需要创建另一个构建风格:
buildTypes {
debug{}
release {}
}
productFlavors {
vanillaDebug {
buildConfigField BOOLEAN, VARIABLE, FALSE
}
vanillaRelease {
buildConfigField BOOLEAN, VARIABLE, TRUE
}
chocolate {
buildConfigField BOOLEAN, VARIABLE, FALSE
}
}
Run Code Online (Sandbox Code Playgroud)
对于您的特定情况,您也可以使用 defaultConfig:
defaultConfig {
buildConfigField BOOLEAN, VARIABLE, TRUE
}
buildTypes {
debug {
buildConfigField BOOLEAN, VARIABLE, FALSE
}
release {
}
}
productFlavors {
VANILLA {
}
CHOCOLATE {
buildConfigField BOOLEAN, VARIABLE, FALSE
}
}
Run Code Online (Sandbox Code Playgroud)
默认值为 TRUE,但随后您将 FALSE 设置为所有 Debug 版本和所有 Chocolate 版本。所以唯一剩下的 TRUE 是 VANILLA-release。
| 归档时间: |
|
| 查看次数: |
14908 次 |
| 最近记录: |