Android Release版本构建失败:重复类与资源编译错误求助
解决Play Store构建时的两个核心错误
一、处理:app:checkReleaseDuplicateClasses重复类错误
针对proto-google-common-protos-2.17.0与protolite-well-known-types-18.0.0的重复类问题,按以下步骤排查:
- 先定位依赖来源:执行
./gradlew app:dependencies命令,查看这两个库是被哪个第三方依赖引入的。通常protolite-well-known-types是Android适配的轻量版,优先保留它,排除完整版的proto-google-common-protos。示例配置:
implementation('引入该依赖的第三方库坐标') { exclude group: 'com.google.protobuf', module: 'proto-google-common-protos' }
- 若排除后仍有问题,强制统一版本:在根目录
build.gradle中添加版本强制规则,确保项目中只存在一个版本的相关库:
configurations.all { resolutionStrategy.force 'com.google.protobuf:protolite-well-known-types:18.0.0' }
二、修复:app:mergeReleaseResources资源编译错误
values.xml编译出错的常见解决方法:
- 检查语法错误:打开values.xml,排查未闭合的标签、拼写错误的属性名(比如
android:textColor写错)、重复的资源name(如两个用了同一个name)。 - 排查资源冲突:查看多语言/多维度资源目录(如values-en、values-v21)是否有同名但格式冲突的资源;或者第三方库引入了重复资源ID,执行
./gradlew app:mergeReleaseResources --info查看详细日志,定位冲突来源后排除:
android { packagingOptions { exclude 'res/values/冲突的资源文件名.xml' } }
- 深度清理缓存:除了常规的Clean Project和Rebuild Project,手动删除
app/build目录和项目根目录下的.gradle/caches文件夹,再重新同步Gradle并构建。
内容的提问来源于stack exchange,提问作者Surya Subhrajit
相关产品推荐
相关产品推荐

