Android应用构建失败:Manifest合并冲突问题求助
解决Manifest Merger Failed的版本冲突问题
嘿,这个问题我太熟了!本质是你的项目里依赖的两个Android Support库版本不一致——com.android.support:appcompat-v7用的是26.1.0,而com.android.support:recyclerview-v7是26.0.1,它们都在各自的Manifest文件里声明了android.support.VERSION的meta-data字段,导致Manifest合并时出现冲突。
下面给你两种解决方法,第二种更推荐:
方法一:按提示使用tools:replace强制覆盖
这个方法直接处理Manifest合并冲突:
- 第一步:确保你的项目根
AndroidManifest.xml的<manifest>标签里已经引入了tools命名空间,没有的话加上:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="你的包名" xmlns:tools="http://schemas.android.com/tools"> <!-- 新增这行 -->
- 第二步:找到冲突的
meta-data标签(对应appcompat-v7的那个,在你的Manifest里大概是第26-28行),给它添加tools:replace="android:value"属性:
<meta-data android:name="android.support.VERSION" android:value="26.1.0" tools:replace="android:value" />
方法二:统一所有Support库版本(更推荐)
版本不一致不仅会导致Manifest冲突,还可能引发运行时兼容性问题,统一版本能从根源解决问题:
- 打开项目根目录的
build.gradle文件,定义一个统一的Support库版本变量:
ext { supportLibVersion = '26.1.0' }
- 然后打开app模块的
build.gradle文件,把所有Support库的版本替换成这个变量:
implementation "com.android.support:appcompat-v7:$supportLibVersion" implementation "com.android.support:recyclerview-v7:$supportLibVersion" // 如果还有其他Support库(比如design、cardview等),也统一用这个版本
- 最后点击Android Studio右上角的「Sync Now」同步gradle,所有Support库版本就一致了,冲突自然消失。
内容的提问来源于stack exchange,提问作者Mizlul




