Unity构建Android项目遇Duplicate Class错误求助
Unity构建Android时Duplicate Class(androidx.annotation)错误解决方法
构建时触发checkReleaseDuplicateClasses任务失败,核心问题是androidx.annotation相关类在多个版本的jar包(1.3.0和1.1.0)中重复存在,更换Gradle和JDK无法解决,可按以下步骤处理:
1. 定位重复依赖的来源
- 打开Unity的
Player Settings(路径:Edit > Project Settings > Player > Android > Publishing Settings),勾选Custom Main Gradle Template和Custom Base Gradle Template,生成Assets/Plugins/Android下的mainTemplate.gradle和baseProjectTemplate.gradle文件。 - 在终端执行依赖分析命令:
从输出里找到所有包含# Mac/Linux ./gradlew launcher:dependencies # Windows gradlew.bat launcher:dependenciesandroidx.annotation的依赖项,标记出同时引用1.1.0和1.3.0版本的库。
2. 排除重复依赖或统一版本
- 排除旧版依赖:打开
mainTemplate.gradle,在dependencies块中,给引入旧版annotation的第三方库添加排除规则。比如某SDK依赖了1.1.0版本,写法如下:implementation('com.example.thirdparty:sdk:1.0.0') { exclude group: 'androidx.annotation', module: 'annotation' } - 强制统一版本:在
baseProjectTemplate.gradle的ext块中添加配置,让所有依赖强制使用1.3.0版本的androidx.annotation:ext { androidXAnnotationVersion = '1.3.0' } configurations.all { resolutionStrategy.force "androidx.annotation:annotation:$androidXAnnotationVersion" }
3. 清理冗余Jar包
检查Assets/Plugins/Android目录,如果你手动导入过annotation-1.1.0.jar或重复的androidx.annotation.annotation-1.3.0.jar,直接删除多余的,只保留最高版本(1.3.0)的Jar包。
4. 清理构建缓存后重试
- 删除Unity项目下的
Library、Temp目录,以及Android构建输出的Build/Android目录。 - 执行Gradle清理命令:
之后重新构建Android项目。# Mac/Linux ./gradlew clean # Windows gradlew.bat clean
内容的提问来源于stack exchange,提问作者Yash Vakil
相关产品推荐
相关产品推荐

