如何修复Android Studio接入Firebase时的Manifest合并失败错误?
这个问题的核心很明确:你的项目同时混用了旧版Android Support Library(com.android.support开头)和AndroidX库,这两套库完全不兼容,Manifest合并自然会失败。下面给你两种解决方案,优先推荐第一种:
方案一:完全迁移到AndroidX(官方推荐)
Google早在几年前就停止了Support Library的维护,所有新特性和bug修复都集中在AndroidX上,所以迁移是长期来看最稳妥的选择。
第一步:开启AndroidX和自动转换
在项目根目录的gradle.properties文件中添加或确保以下配置存在:android.useAndroidX=true android.enableJetifier=trueandroid.enableJetifier=true会自动将所有第三方依赖中的Support库转换为对应的AndroidX版本,不用你手动修改每一个依赖,非常省心。第二步:替换项目中手动引入的Support库
把你自己在build.gradle(Module级别)里写的com.android.support依赖,换成对应的AndroidX版本。比如你用到的cardview-v7:28.0.0,对应的AndroidX依赖是androidx.cardview:cardview:1.0.0(也可以用最新的稳定版本)。第三步:同步并重构项目
点击Android Studio右上角的"Sync Now"同步Gradle,然后依次执行Build -> Clean Project和Build -> Rebuild Project,清理旧的构建缓存后重新编译。
方案二:统一使用Support库(临时方案)
如果暂时不想迁移到AndroidX,你需要确保所有依赖都使用Support库版本,替换掉冲突的AndroidX依赖:
- 找到冲突的AndroidX依赖(这里是
androidx.swiperefreshlayout:swiperefreshlayout:1.0.0),换成对应的Support库版本:com.android.support:swiperefreshlayout:28.0.0,和你现有的cardview-v7版本保持一致。 - 确保你的
targetSdkVersion设置为28(和Support库版本匹配),在Module的build.gradle中:android { targetSdkVersion 28 // 其他配置... }注意:这个方案有局限性,因为很多最新版的Firebase库已经不再支持Support Library,后续升级依赖可能会遇到更多问题。
额外排查技巧
如果不确定哪些依赖引入了冲突的库,可以用Gradle的依赖分析命令:
- 在Android Studio的Terminal中执行:
查看输出的依赖树,找到引入./gradlew app:dependencies # Mac/Linux # 或者Windows系统: gradlew.bat app:dependenciesandroidx.swiperefreshlayout或com.android.support:cardview-v7的来源,就能针对性地调整依赖版本或排除冲突。
内容的提问来源于stack exchange,提问作者Sjj

