如何覆盖每种构建类型的resConfigs
?我读到口味可以允许,但我不会使用它们。我只想为我的调试构建另一组受支持的语言。
以下是我的尝试:
buildTypes {
debug {
resConfigs "de", "en" // allow also german in debug builds
}
release {
signingConfig signingConfigs.release
resConfigs "en" // english only releases
}
}
任何简单的想法我怎么能实现这个目标?
答案 0 :(得分:6)
出于某种原因,单个buildType配置不支持resConfigs
命令,但defaultConfig
确实如此,然后您可以使用此技巧按照构建类型操作它,即使没有配置风味:
android {
defaultConfig {
resConfigs "en"
}
applicationVariants.all { variant ->
if (variant.buildType.name.equals("debug")) {
variant.mergedFlavor.resourceConfigurations.add("de")
}
}
}
答案 1 :(得分:0)
接受的答案对我不起作用。未成功添加de
。尽管可以在applicationVariants.all { ... }
lambda内执行所有操作:
android {
defaultConfig {
// No resConfigs here!
// resConfigs "en"
}
applicationVariants.all { variant ->
if (variant.buildType.name.equals("debug")) {
variant.mergedFlavor.resourceConfigurations.add("de")
} else {
variant.mergedFlavor.resourceConfigurations.add("en", "de")
}
}
}
或使用Kotlinscript:
android {
defaultConfig {
// no resConfigs here!
}
android.applicationVariants.all {
val resConfigs = when {
name.equals("debug") -> listOf("en", "de")
else -> "en"
}
(mergedFlavor as DefaultProductFlavor).addResourceConfigurations(resConfigs)
}
}