今天遇到了一个报错:
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
(Manifest合并失败)
只有这么一句报错,并无其他说明,相当头疼。
回想一下我做了什么才出现这问题的:升级百川SDK到3.0.6
1、将部分阿里jar包换成了aar(原jar包删除)
2、grade中添加dependencies和repositories
仅此而已
然后各种求解:
说法1:
原因是导入的库在build.gradle中的minSdkVersion与你的应用的minSdkVersion不匹配导致的(app要求应用最小系统版本和库要求系统最小版本不一致),改成 样的就行了.(可我并不知道库要求是多少,于是我照着官方demo的设置,然而并没有什么用)
说法2:http://blog.youkuaiyun.com/codezjx/article/details/38669939
原因是AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和 android:theme),则此时会合并失败,并报上面的错误。
解决方法有以下2种:
方法1:在Manifest.xml的application标签下添加tools:replace="android:icon, android:theme"(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools="http://schemas.android.com/tools",否则会找不到namespace哦)
方法2:在build.gradle根标签上加上useOldManifestMerger true (懒人方法)
可这位博主给贴的报错比较详细:
Error:(26, 9) Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:26:9
Error:(28, 9) Attribute application@theme value=(@style/ThemeActionBar) from AndroidManifest.xml:28:9is also present at XXXX-trunk:XXXXLib:unspecified:15:9 value=(@style/AppTheme)
Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:24:5 to override
Error:Execution failed for task ':XXXX:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
跟我的情况有些出入(之所以贴在这里,以备不时之需嘛)
说法3:65535限制 (我遇到的就是个原因导致的)
解决方法:
Application extends MultiDexApplication