如何在android清单中压缩字符串资源和构建变量
前兆:我想本地化应用程序名称(使用字符串资源)如何在android清单中压缩字符串资源和构建变量,android,android-gradle-plugin,concatenation,build.gradle,android-manifest,Android,Android Gradle Plugin,Concatenation,Build.gradle,Android Manifest,前兆:我想本地化应用程序名称(使用字符串资源)并同时从gradle文件中添加构建类型后缀(“DEBUG”) 这里我试图连接字符串资源“app_name”和gradle变量“AppNameSuffix” 预期的应用程序名称: 对于产品风格“all”-“我的应用程序调试” 对于产品风格“中国”“-“我的中文应用程序调试” 后续构建类型后缀为“RELEASE”和“CANARY” build.gradle: 显示: 在gradle文件中,使用小写字母,以便资源名称有效: buildTypes
并同时从gradle文件中添加构建类型后缀(“DEBUG”) 这里我试图连接字符串资源“app_name”和gradle变量“AppNameSuffix” 预期的应用程序名称:
对于产品风格“all”-“我的应用程序调试”
对于产品风格“中国”“-“我的中文应用程序调试”
后续构建类型后缀为“RELEASE”和“CANARY”
build.gradle:
显示:
在gradle文件中,使用小写字母,以便资源名称有效:
buildTypes {
debug {
manifestPlaceholders = [AppNameSuffix: "_debug"]
...
}
release{
manifestPlaceholders = [AppNameSuffix: "_release"]
...
}
canary{
manifestPlaceholders = [AppNameSuffix: "_canary"]
}
}
修改您的清单:有括号要删除,如果还没有工具:替换要添加:
<application
...
android:label="@string/app_name${AppNameSuffix}"
tools:replace="android:label"
...
</application>
<string name="app_name">My application %s</string>
<string name="app_name">My Chinese application %s</string>
buildTypes {
debug {
manifestPlaceholders = [AppNameSuffix: "_debug"]
...
}
release{
manifestPlaceholders = [AppNameSuffix: "_release"]
...
}
canary{
manifestPlaceholders = [AppNameSuffix: "_canary"]
}
}
<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>