resValue
方法(或它的任何名称)允许您在 buildTypes
或 productFlavors
中 设置 资源值。 是否有相应的方法来 获取 由 resValue
设置的资源值?
It appears that productFlavors
is evaluated before buildTypes
, so a resValue
set in buildTypes
takes precedence.我想在调试版本中将“调试”附加到应用程序名称,但我需要获取在产品风格中设置的值才能附加到它。
编辑: 我尝试了 Marcin Koziński 的使用变量的建议,但 所有 产品口味都在 任何 构建类型之前进行评估。因此,这不起作用:
android {
String appName = ""
productFlavors {
Foo {
appName = "Foo"
}
Bar {
appName = "Bar"
}
}
buildTypes {
release {
resValue "string", "app_name", appName
}
debug {
resValue "string", "app_name", appName + " Debug"
}
}
}
在 buildTypes
中, appName
始终具有 最后一个 产品风味的值。因此,在此示例中,所有构建都收到名称 "Bar"
或 "Bar Debug"
。
基本上,我需要一个 resValueSuffix
类似于 applicationIdSuffix
。显然不存在这样的动物。 com.android.application
插件是否公开了我可以用来实现此目的的任何内容?
原文由 Kevin Krumwiede 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您只是想设置 App Label(或其他清单值),您可以使用 manifest placeholders 解决这个问题。
然后在您的 Android Manifest 中,您只需使用两个占位符作为您的应用程序名称(或其他值)
这允许您在单个设备上并排安装所有 4 个变体,并在应用程序抽屉/启动器中为它们指定不同的名称。
编辑 2019 年 11 月 22 日
根据@javaxian 的反馈更新了占位符值的设置方式