解决Android Studio添加依赖时出现“Manifest merger failed”

2015年10月4日 由 Creater 留言 »

今天一技术群里的朋友碰到个问题,说用Android Studio导入第三方依赖库时报错,出现这个:

报错1

所导入的依赖为这个

SweetAlertDialog:
https://github.com/pedant/sweet-alert-dialog

于是多管闲事的我试着导入了下,也出错了,不过没出现上面截图的错误,而出现Manifest merger failed(Manifest合并失败)错误,如下图:

报错2

1
2
3
4
5
Error:(7, 9) Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:7:9
Error:(7, 9) Execution failed for task ':importdemo:processDebugManifest'.
> Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:7:9
    is also present at com.pnikosis:materialish-progress:1.0:13:9 value=(@drawable/ic_launcher)
	Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:5:5 to override

分析错误

分析错误提示,

  1. 主程序module清单文件中,application节点的android:icon属性引用了@mipmap/ic_launcher图片资源,
  2. 而依赖module的清单文件中,同样的android:icon属性却引用了@drawable/ic_launcher这个图片资源,

两个属性值产生冲突,导致合并清单文件失败。

虽然知道错误是什么,但是仍然不知道咋解决啊。
其实英语没那么糟糕,细心点的话,就能看到错误提示中就给出了解决问题的建议。

Suggestion: add ‘tools:replace=”android:icon”‘ to element at AndroidManifest.xml:5:5 to override

意思在AndroidManifest.xml文件的<application>节点中添加tools:replace="android:icon"属性。

修改

按提示进行修改,再同步Gradle,问题解决。

tools:replace 属性的作用可以在这个页面找到(需要搭梯)
http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger
在页面搜索 Override an attribute coming from a library 即可定位到。

广告位

发表评论

你必须 登陆 方可发表评论.