ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Manifest merger failed with multiple errors, see logs 问题处理

2020-06-29 18:56:56  阅读:394  来源: 互联网

标签:errors multiple logs merger gradle failed 报错 库中 com


首先致谢: https://www.jianshu.com/p/a22c55a28064, 我们不生产代码, 我们只做大自然的搬运工!

 

一.【问题背景】 项目导入第三方(OPPO 和魅族 厂商推送)提供的aar 文件,报错

错误描述:Manifest merger failed with multiple errors, see logs

打开详细gradle报错日志,发现是执行任务processDebugManifest报错:

 

 

 

 

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugManifest'
Caused by: java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
    at com.android.builder.core.AndroidBuilder.mergeManifestsForApplication(AndroidBuilder.java:558)
    at com.android.build.gradle.tasks.ProcessApplicationManifest.doFullTaskAction(ProcessApplicationManifest.java:208)
    at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)

 

二. 【原因定位】使用命令查看更详细日志

gradlew processDebugManifest -stacktrace 

详细日志:

uses-sdk:minSdkVersion 17 cannot be smaller than version 19 declared in library [:com.heytap.msp:] C:\Users\Mostone-0030\.gradle\caches\transforms-2\files-2.1\812e2e860b0bf2a7996e395481d6e5c9\AndroidManifest.xml as the library might be using APIs not availa
ble in 17
        Suggestion: use a compatible library with a minSdk of at most 17,
                or increase this project's minSdk version to at least 19,
                or use tools:overrideLibrary="com.heytap.mcssdk" to force usage (may lead to runtime failures)


See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.

 

三. 【解决方案】

当我们项目Manefest的某些属性和第三方库中Manefest的属性有冲突会报上面的错误。
比如第三方库中也定义了icon、allowBackup等属性,且会与你的项目不同,则发生冲突,编译就会报错。
解决办法就是在我们项目的Application节点中加入tools:replace来替换三方库中的相关属性,如下:(根据实际情况)
<application
 ...
 tools:replace="android:allowBackup,android:icon">
 ...
 <uses-sdk tools:overrideLibrary="com.heytap.mcssdk,com.meizu.cloud.pushinternal" />

还有一种方案就是去掉第三方库中冲突的属性。

 

总结: 核心代码

使用命令查看更详细日志,快速定位bug 并解决

gradlew processDebugManifest -stacktrace 

标签:errors,multiple,logs,merger,gradle,failed,报错,库中,com
来源: https://www.cnblogs.com/lizhilin2016/p/13209679.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有