Manifest合并多错误求助:重建Android项目时持续报错
兄弟,我太懂这种Manifest合并报错的糟心了——明明没碰Manifest文件,改个Firebase依赖就炸了,尤其是Firebase这类自带一堆隐式Manifest配置的库,很容易触发冲突。给你几个针对性的排查和解决步骤,亲测好用:
先抓准具体冲突原因:Android Studio的错误提示只说“合并失败”太笼统了,你得看完整日志。打开底部的
Build面板,切换到Build Output的Errors标签,往下翻找Manifest合并失败条目下面的细节——比如是权限重复、Activity/Service组件冲突,还是SDK版本不兼容?这是解决问题的核心前提。统一Firebase依赖版本:Firebase的所有组件(auth、firestore、messaging等)必须用完全一致的版本号,版本不匹配是触发Manifest冲突的重灾区。别像下面这么写:
implementation 'com.google.firebase:firebase-auth:22.0.0' implementation 'com.google.firebase:firebase-firestore:24.4.0' // 版本不一致!推荐用Firebase BOM自动管理版本,省心又不会错:
implementation platform('com.google.firebase:firebase-bom:32.7.0') implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore'排查依赖树找冲突库:执行Gradle命令查看完整依赖关系,Windows用
gradlew.bat app:dependencies,Mac/Linux用./gradlew app:dependencies。搜索和Manifest组件(比如Activity、Provider)或权限相关的重复依赖,找到后用exclude排除其中一个的冲突配置,比如:implementation '某第三方库' { exclude group: 'com.google.android.gms', module: 'play-services-ads' }手动指定Manifest合并规则:如果确定是重复的权限或组件,可以在你的Manifest里强制合并。比如两个库都声明了同一个权限,你可以加上
tools:replace覆盖配置:<!-- 先在根标签引入tools命名空间 --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="cw.gymbuddy"> <!-- 解决权限冲突 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:replace="android:maxSdkVersion"/>或者用
tools:remove直接删掉重复的配置项。彻底清理缓存:除了Android Studio的
Clean Project,手动删除项目根目录和app模块下的build文件夹,再执行File > Invalidate Caches... > Invalidate and Restart,有时候旧缓存会残留错误的Manifest配置。
如果之后能拿到完整的错误日志和Manifest内容,可以更精准地定位问题。
内容的提问来源于stack exchange,提问作者Werokk

