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


    首先致谢: 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:UsersMostone-0030.gradlecaches	ransforms-2files-2.1812e2e860b0bf2a7996e395481d6e5c9AndroidManifest.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 
    以一颗童心善待生活
  • 相关阅读:
    array_map()与array_shift()搭配使用 PK array_column()函数
    Educational Codeforces Round 8 D. Magic Numbers
    hdu 1171 Big Event in HDU
    hdu 2844 poj 1742 Coins
    hdu 3591 The trouble of Xiaoqian
    hdu 2079 选课时间
    hdu 2191 珍惜现在,感恩生活 多重背包入门题
    hdu 5429 Geometric Progression 高精度浮点数(java版本)
    【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
    hdu::1002 A + B Problem II
  • 原文地址:https://www.cnblogs.com/lizhilin2016/p/13209679.html
Copyright © 2020-2023  润新知