最近项目一直没有动过,运行时忽然报 Manifest merger failed with multiple errors, see logs这个问题。
经过网上一番搜索,基本两种原因:
1.AndroidManifest中有报错,编译时没有指出来;
2.引用的其他类库中的属性与主项目中属性相同,例如默认生成的android:icon和android:theme;
开始时,不知道哪些属性有冲突,按照网上的说法,在manifest头声明xmlns:tools="http://schemas.android.com/tools",
在application节点中添加tools:replace="icon,theme",运行后依然没有解决。
然后又仔细检查了一下权限配置,去掉几个重复的权限后,才爆出了具体的异常信息:
Error:Execution failed for task ':app:processAndroidDebugManifest'.
> Manifest merger failed : Attribute application@name value=(com.xdjd.water.App) from AndroidManifest.xml:51:9-28
is also present at [cn.sharesdk:OneKeyShare:3.2.1] AndroidManifest.xml:16:63-100 value=(com.mob.MobApplication).
Suggestion: add 'tools:replace="android:name"' to <application> element at AndroidManifest.xml:50:5-193:19 to override.
问题是主项目的name和其他library有冲突,于是修改replace的值为name就可以了: