Android项目运行时出现Duplicate class类重复错误求助
解决Android重复类依赖问题
问题原因
你遇到的重复类错误,是因为项目中不同依赖库间接引入了不同版本的Android Support库(比如support-v13:25.0.0和support-compat:28.0.0),导致类定义冲突。
解决步骤
1. 定位重复依赖的来源
在项目根目录执行以下命令,生成完整依赖树,找出引入旧版本support-v13的具体依赖:
./gradlew app:dependencies
搜索support-v13,即可看到是哪个依赖间接引入了25.0.0版本的库。
2. 强制统一所有Support库版本
在build.gradle(Module: app)的android块下添加配置,强制所有Support库使用28.0.0版本,从根源避免版本冲突:
android { // ... 原有配置 configurations.all { resolutionStrategy { force 'com.android.support:support-v13:28.0.0' force 'com.android.support:support-compat:28.0.0' force 'com.android.support:support-core-utils:28.0.0' force 'com.android.support:support-core-ui:28.0.0' } } }
3. 排除特定依赖中的旧Support模块
如果强制版本后仍有冲突,找到引入旧版本的依赖,手动排除其中的Support模块。比如假设io.nlopez.smartlocation:library:3.3.3是冲突来源,修改该依赖:
implementation('io.nlopez.smartlocation:library:3.3.3') { exclude group: 'com.android.support', module: 'support-v13' exclude group: 'com.android.support', module: 'support-compat' }
同理,对其他排查出的冲突依赖做同样处理。
4. 清理重建项目
执行以下操作确保修改生效:
- 点击Android Studio工具栏
File -> Invalidate Caches...,选择Invalidate and Restart。 - 执行
./gradlew clean清理构建缓存,再重新编译项目。
额外优化建议
- 项目中
com.google.android.gms和com.google.firebase版本不一致(11.8.0与11.4.2),建议统一为同一版本(比如11.8.0),避免潜在冲突。 - 考虑逐步迁移到AndroidX,Support库已停止维护,AndroidX是官方推荐的替代方案。
内容的提问来源于stack exchange,提问作者Nataly Ayyad
相关产品推荐
相关产品推荐

