Pet*_*ter 10 android android-gradle-plugin
我的Android清单文件定义了应用名称,如下所示:
android:label="@string/app_name"
Run Code Online (Sandbox Code Playgroud)
app_name的相应条目存在于res/values/strings.xml中
现在,在我的build.gradle中,我重新定义了beta版本的应用程序名称,如下所示:
buildTypes {
beta {
applicationIdSuffix ".beta"
debuggable true
resValue "string", "app_name", "MyTest Beta"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我组装包时,Gradle会抱怨重复的字符串资源.
我可以简单地从string.xml中删除app_name标记.但是,在这种情况下,Android Studio会报告清单文件的问题.
我该如何解决?问候.
不应该乱用'resValue'.您可以使用调试源集,它允许您在调试中重新定义其他字符串.创建以下文件并在其中重新定义'app_name'字符串.
src/debug/res/values/strings.xml
Run Code Online (Sandbox Code Playgroud)
只需确保build.gradle的sourceSets中没有以下内容
debug.setRoot('build-types/debug')
Run Code Online (Sandbox Code Playgroud)
我也遇到了同样的问题.我的解决方案是使用Manifest-placeholder.
<application
android:label="${APP_NAME}"
tools:replace="android:label">
Run Code Online (Sandbox Code Playgroud)
在defaultConfig闭包中,设置值
defaultConfig {
addManifestPlaceholders([APP_NAME: "@string/app_name"])
}
Run Code Online (Sandbox Code Playgroud)
并改变你的口味中的价值.
buildTypes {
beta {
applicationIdSuffix ".beta"
debuggable true
addManifestPlaceholders([APP_NAME: "MyTest Beta"])
}
}
Run Code Online (Sandbox Code Playgroud)
退税:
为了解决这个问题的缺点,你可以结合Manifest-placeholder和resValue,这是创建一个资源利用resValue和改变android:label你的资源.
| 归档时间: |
|
| 查看次数: |
5131 次 |
| 最近记录: |