android manifest merger无法合并三个清单文件

时间:2016-02-18 17:54:37

标签: android gradle android-manifest

我的项目中有两个版本的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" >

1 个答案:

答案 0 :(得分:2)

  • 我发现标签应该与所有其他标签具有相同的值。 这意味着tools:replace仅在所有标签看起来都如此时起作用:

  • android:label="@string/app_name"

  • 在我的情况下,它不起作用,因为在调试清单中它看起来像这样:

  • android:label="debug name"

  • 但是一旦我将其更改为android:label="@string/app_name"并在debug/values dir中添加了字符串,它就开始正常工作了。 看起来像Android Studio中的错误。