You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建APK时报Manifest merger failed错误,androidx与support库冲突如何解决

错误原因

该Manifest合并失败是因为项目依赖中同时存在旧版Android Support库和新版AndroidX库,两个库的Manifest文件都定义了appComponentFactory属性,构建时无法确定以哪个为准,所以抛出冲突错误。

解决方案

推荐优先选择方案一彻底解决,方案二仅作为临时应急使用。

方案一:全项目统一迁移到AndroidX(推荐)

Google已停止维护Android Support库,所有新官方组件均基于AndroidX开发,迁移后可彻底避免此类兼容冲突:

  • 第一步:清理build.gradle的冗余冲突依赖
    删除所有旧Support库依赖与重复依赖:
    // 删掉这两行旧Support库依赖
    implementation 'com.android.support:appcompat-v7:25.2.0'
    implementation 'com.android.support:design:28.0.0'
    // 删掉重复引入的Branch SDK,保留一个版本即可,建议保留更高的5.+版本
    implementation 'io.branch.sdk.android:library:4.+'
    
  • 第二步:在项目根目录的gradle.properties文件中添加以下两行配置,开启AndroidX支持并自动转换第三方库的Support引用:
    android.useAndroidX=true
    android.enableJetifier=true
    
  • 第三步:修改build.gradle中的测试运行器为AndroidX版本:
    把defaultConfig下的
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
    替换为
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    

修改完成后重新构建项目即可解决冲突。

方案二:临时强制覆盖Manifest属性(不推荐)

如果暂时没有时间做全量迁移,可以通过修改Manifest强制覆盖冲突属性应急:

  • 第一步:在AndroidManifest.xml的根<manifest>标签中添加tools命名空间:
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="io.branch.branchster"
        ...>
    
  • 第二步:在<application>标签中添加覆盖配置:
    <application
        android:largeHeap="true"
        android:allowBackup="true"
        android:name="io.branch.branchster.ApplicationMainClass"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        tools:replace="android:appComponentFactory"
        android:appComponentFactory="androidx.core.app.CoreComponentFactory">
    

该方法仅能解决当前Manifest合并错误,后续仍可能出现其他Support和AndroidX的兼容问题。

内容的提问来源于stack exchange,提问作者Jay S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:12:03