Unity Android构建Gradle重复类错误排查与版本统一问询
问题背景
使用Unity 2022.3.16f1构建Android项目时,checkReleaseDuplicateClasses任务失败,提示androidx.core的1.13.0-alpha02与1.8.0版本存在重复类(如android.support.v4.app.INotificationSideChannel系列)。手动添加androidx.core:core:1.8.0依赖未解决问题,导出到Android Studio也未检测到依赖冲突。
1. 排查问题原因
1.1 分析依赖树定位冲突来源
在Unity导出的Android项目根目录下,执行Gradle命令生成完整依赖树:
- Windows:
gradlew.bat launcher:dependencies - macOS/Linux:
./gradlew launcher:dependencies
在输出结果中搜索androidx.core,查看哪个第三方依赖(如RevenueCat、IronSource、Firebase)间接引入了1.13.0-alpha02版本的androidx.core。
1.2 检查Unity外部依赖管理器设置
进入Unity编辑器的Edit > Project Settings > External Dependency Manager > Android Resolver:
- 确认自动解析功能状态,Resolver可能自动拉取与手动配置冲突的依赖版本。
- 查看版本规则设置,是否存在强制引入高版本
androidx.core的规则。
1.3 检查本地插件库
查看Unity项目的Plugins/Android目录,确认是否有第三方插件直接打包了androidx.core相关的.jar或.aar文件,这类本地库会与Gradle依赖的库产生重复。
2. 解决依赖重复,强制统一版本
2.1 强制指定androidx.core版本
修改mainTemplate.gradle的dependencies块,将手动添加的androidx.core依赖改为强制版本:
implementation('androidx.core:core:1.8.0') { force = true }
Gradle会忽略所有其他依赖引入的androidx.core版本,强制使用1.8.0。
2.2 排除冲突依赖中的重复库
如果通过依赖树找到是某个第三方依赖(如com.revenuecat.purchases:purchases-hybrid-common)引入了高版本androidx.core,在该依赖中排除androidx.core:
implementation('com.revenuecat.purchases:purchases-hybrid-common:[8.1.1]') { exclude group: 'androidx.core' }
2.3 清理缓存并重新解析依赖
- 删除Unity项目的
Library、Temp、Obj目录,清理缓存。 - 回到Unity编辑器,执行
Assets > External Dependency Manager > Android Resolver > Resolve,让Resolver重新处理依赖冲突。
2.4 全局锁定依赖版本
在mainTemplate.gradle最顶部添加全局版本锁定规则,确保所有模块使用统一的androidx.core版本:
configurations.all { resolutionStrategy { force 'androidx.core:core:1.8.0' } }
内容的提问来源于stack exchange,提问作者Alex

