前体:我想本地化应用名称(使用字符串资源)
,同时从gradle文件中添加构建类型后缀(“ DEBUG”)。
在这里,我尝试将字符串资源“ app_name”和gradle变量“ AppNameSuffix”连接起来
期望的应用名称:
用于产品风味“ 全部”-“我的应用程序调试”
用于产品口味“ 中国”-“我的中文应用程序调试”
以及后继的构建类型后缀为“ RELEASE”和“ CANARY”
buildTypes {
debug {
manifestPlaceholders = [AppNameSuffix: "DEBUG"]
...
}
release{
manifestPlaceholders = [AppNameSuffix: "RELEASE"]
...
}
canary{
manifestPlaceholders = [AppNameSuffix: "CANARY"]
}
}
productFlavors {
china {
applicationId "com.myapplication.china"
}
all {
//default
applicationId "com.myapplication.all"
}
}
<application
...
android:label="@{@string/app_name(${AppNameSuffix})}">
...
</application>
评估gradle变量时出现“ $”符号错误
<string name="app_name">My application %s</string>
<string name="app_name">My Chinese application %s</string>
参考文献:
答案 0 :(得分:0)
在gradle文件中,使用小写字母,以便资源名称有效:
buildTypes {
debug {
manifestPlaceholders = [AppNameSuffix: "_debug"]
...
}
release{
manifestPlaceholders = [AppNameSuffix: "_release"]
...
}
canary{
manifestPlaceholders = [AppNameSuffix: "_canary"]
}
}
修改清单:需要删除括号,如果没有的话,可以使用tools:replace替换:
<application
...
android:label="@string/app_name${AppNameSuffix}"
tools:replace="android:label"
...
</application>
然后您需要添加与后缀匹配的字符串资源:
<string name="app_name">My application</string>
<string name="app_name_debug">My application DEBUG</string>
<string name="app_name_release">My application RELEASE</string>
<string name="app_name_canary">My application CANARY</string>
您还可以使用口味,并将特定的strings.xml文件放入与口味匹配的文件夹中。