清单合并工具:替换没有任何影响

时间:2015-05-17 10:41:20

标签: android android-studio android-manifest android-gradle

我在我的应用程序中使用了image-chooser-library,其中定义了android:icon所以我需要覆盖此属性以便gradle成功构建:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.sample.sample">

    <application
        android:icon="@drawable/icon"
         tools:replace="icon"/>

</manifest>

但我仍然得到以下内容:

清单合并失败:来自AndroidManifest.xml的属性应用程序@ icon value =(@ drawable / icon):20:9     也出现在com.kbeanie:image-chooser-library:1.4.3:13:9 value =(@ drawable / ic_launcher)     建议:在AndroidManifest.xml中添加'tools:replace =“android:icon”'元素:15:5覆盖

有什么建议吗?

3 个答案:

答案 0 :(得分:13)

我有同样的问题,因为它发生在多个构建机器上,当创建一个仅导致问题的库的测试项目时,一切正常,我怀疑清单合并工具中的一些错误。

我通过更改gradle文件中依赖项的顺序来修复它(导致问题的库是列表中的最后一个,我将它移到顶部)。

答案 1 :(得分:2)

您可以尝试在build.gradle文件中添加useOldManifestMerger true(在android{}标记中),但此功能将从1.0.0 gradle插件版本中删除。

或者将tools:replace="android:icon"添加到AndroidManifest.xml。 (警告:您应首先在xmlns:tools="http://schemas.android.com/tools"代码中添加<manifest/>

有关清单合并的更多信息,您可以访问Official Document

答案 2 :(得分:0)

我在我的清单上检查了它,它是

tools:replace="android:icon"

不只是"icon"