Unity Android构建失败:com.google.unity.ads类重复问题求助
解决Unity Android构建时的Duplicate Class报错问题
老哥,看你的报错日志,核心问题非常明确:googlemobileads-unity模块和unity-plugin-library.jar里存在大量重复类,比如com.google.unity.BuildConfig、com.google.unity.ads.Banner这些,直接导致Gradle的checkReleaseDuplicateClasses任务失败。
下面给你几个针对性的解决方案,按优先级来试:
1. 先排查并移除重复的广告插件依赖
你说项目没接Unity Ads,但报错是Google Ads相关的冲突。十有八九是你的项目里同时用了两种Google Ads的集成方式:
- 一种是通过Unity Package Manager导入的官方
googlemobileads-unity包 - 另一种是手动丢了
unity-plugin-library.jar这类旧版/第三方Ads插件的jar包进去
操作步骤:
- 打开Unity的Package Manager,找到Google Mobile Ads插件,先卸载它
- 去项目的
Assets/Plugins/Android目录下,翻找有没有unity-plugin-library.jar或者其他带Google Ads字样的jar包,找到就直接删掉 - 之后重新通过Package Manager装最新版的Google Mobile Ads插件,再试构建
2. 给Gradle加排除规则解决冲突
如果上面的方法找不到重复的jar,或者没法完全删掉其中一个依赖,那可以改Unity的Gradle模板来排除重复类:
- 先在Unity编辑器里打开
Edit > Project Settings > Player > Android > Publishing Settings,勾选Custom Main Gradle Template和Custom Base Gradle Template - 找到生成的
Assets/Plugins/Android/mainTemplate.gradle文件,在dependencies块里给冲突的依赖加排除规则。比如针对googlemobileads-unity,排除掉重复的模块:
dependencies { implementation(name: 'googlemobileads-unity', ext:'aar') { exclude group: 'com.google.unity', module: 'unity-plugin-library' } // 其他依赖保持不变... }
要是是unity-plugin-library那边的问题,就反过来排除它的重复模块。
3. 彻底清理Unity缓存再试
你之前删过Library,但可以补几步彻底清缓存:
- 关掉Unity编辑器
- 删掉项目根目录下的
Temp、Library、obj三个文件夹 - 重新打开Unity,让它重新导入所有资源
- 再尝试构建Release版本
额外提醒
- 你用的JDK 1.8.0_161是符合Unity要求的,不用频繁换版本,这个不是问题根源
- 还要检查下有没有其他第三方插件(比如聚合广告SDK)也偷偷集成了Google Ads的模块,这类插件也容易导致重复类冲突
先试第一个方案,这是最常见的原因,应该能解决你的问题。
内容的提问来源于stack exchange,提问作者Cihan Akgul
相关产品推荐
相关产品推荐

