我的项目中有两个版本的AndroidManifest.xml文件,一个是main,另一个是debug。 在他们两个我有android:标签和调试版本我有工具:replace =" label"
通过gradle添加库后,我突然看到:
错误:任务':app:processMobileDebugManifest'执行失败。
它已经存在了!我做错了什么?清单合并失败:来自AndroidManifest.xml的属性应用程序@ label value =(XXXX Debug):36:13-45 也存在于[library_name] AndroidManifest.xml:13:9-41 value =(@ string / app_name)。 建议:添加'工具:replace =" android:label"'到AndroidManifest.xml:7:5-20:19的元素覆盖。
EDIT1: main xml:
<application
android:name="[package_name]"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
debug xml:
<application
tools:replace="name, label"
android:name="[package_name]"
android:label="[debug_name]">
第三方库xml:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
答案 0 :(得分:2)
我发现标签应该与所有其他标签具有相同的值。
这意味着tools:replace
仅在所有标签看起来都如此时起作用:
android:label="@string/app_name"
在我的情况下,它不起作用,因为在调试清单中它看起来像这样:
android:label="debug name"
但是一旦我将其更改为android:label="@string/app_name"
并在debug/values dir
中添加了字符串,它就开始正常工作了。
看起来像Android Studio中的错误。