Android清单合并失败求助:support-v4与percent库版本冲突
咱们一步步来搞定这个Manifest合并冲突的问题。这是很常见的支持库版本不一致导致的错误,而且我注意到你的项目里同时混用了AndroidX和旧的com.android.support库,这也是问题的核心之一。下面给你两种解决方案,按需选择:
方案一:快速修复冲突(不迁移AndroidX)
如果暂时不想切换到AndroidX,可以通过统一支持库版本+Manifest配置快速解决:
清理重复依赖
你的dependencies里同时引入了AndroidX和旧support版本的百分比布局库,功能完全重复,直接删除旧版本的依赖:// 删除这一行 implementation 'com.android.support:percent:26.0.2'强制统一所有support库版本
在app模块的build.gradle中添加版本强制策略,确保所有com.android.support相关库使用同一个版本(这里用和你的compileSdkVersion匹配的28.0.0):android { // 保留你原有的配置... } // 添加这段版本统一配置 configurations.all { resolutionStrategy.force 'com.android.support:support-v4:28.0.0' resolutionStrategy.force 'com.android.support:support-annotations:28.0.0' } dependencies { // 保留你修改后的依赖... }按照系统提示修改AndroidManifest.xml
首先确保Manifest根元素包含tools命名空间,如果没有就加上:<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="tw.com.iac.sam_qw25">然后找到冲突的
meta-data元素,添加tools:replace="android:value"属性来指定使用统一后的版本:<meta-data android:name="android.support.VERSION" android:value="28.0.0" tools:replace="android:value" />
方案二:彻底迁移到AndroidX(推荐)
旧的com.android.support库已经停止维护,AndroidX是官方推荐的替代方案,彻底迁移可以从根源上避免后续的版本冲突:
替换所有旧support依赖为AndroidX版本
修改app模块的dependencies,把旧support库替换成对应的AndroidX库:dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.google.android.support:wearable:2.4.0' implementation 'com.google.android.gms:play-services-wearable:16.0.1' implementation 'androidx.percentlayout:percentlayout:1.0.0' // 移除了重复的com.android.support:percent:26.0.2 implementation 'androidx.recyclerview:recyclerview:1.0.0' compileOnly 'com.google.android.wearable:wearable:2.4.0' // 替换为AndroidX版本的约束布局 implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' // 替换为AndroidX版本的Espresso androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' }启用AndroidX和Jetifier
在项目根目录的gradle.properties文件中添加以下配置(如果没有这个文件就新建一个):android.useAndroidX=true android.enableJetifier=trueJetifier会自动将第三方依赖中的旧support库转换为AndroidX版本,彻底避免依赖冲突。同步并重构项目
点击Android Studio菜单栏的Build->Clean Project,然后选择Rebuild Project,等待构建完成即可。
为什么会出现这个错误?
当你的项目引入多个不同版本的com.android.support库时,每个库的AndroidManifest.xml中都会包含android.support.VERSION这个元数据,Manifest合并工具无法确定使用哪个版本,就会抛出冲突错误。另外,同时混用AndroidX和旧support库会导致更复杂的依赖冲突——因为两者的命名空间完全不同,所以建议要么统一使用旧support库(版本保持一致),要么彻底迁移到AndroidX。
内容的提问来源于stack exchange,提问作者Sam Shih

