You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity添加广告与IAP后构建Android项目失败:Gradle Daemon及相关错误求助

解决Unity Android构建(添加Ads/IAP后)的系列报错

嘿,我帮你逐个拆解这些构建问题——都是添加广告和内购后Unity Android构建常见的配置或环境冲突,一步步来解决:

1. 无法加载C:\Users\bonel\.android\repositories.cfg

这个文件是Android SDK用来记录本地仓库配置的,缺失或损坏都会触发这个提示,解决超简单:

  • 直接去C:\Users\bonel\.android目录下,新建一个空的repositories.cfg文件就行,不需要写任何内容,Android构建工具会自动识别它。

2. 找不到玩家程序集UnityEngine.TestRunner.dll

这个DLL属于Unity测试框架,大概率是添加IAP/Ads时引入了测试依赖,或者项目开启了测试模块但打包时没正确处理:

  • 打开Unity的Package Manager,找到Unity Test Framework包,先移除它,再尝试构建;之后如果需要测试功能再重新安装就行。
  • 检查Player Settings里的Scripting Runtime Version,建议设为.NET 4.x Equivalent,避免版本兼容问题。
  • 清理项目的Temp和Library目录,重启Unity后再构建(记得先备份重要文件哦)。

3. Gradle Daemon不兼容,无法复用

Gradle守护进程版本不匹配导致的,直接重置就行:

  • 打开命令行,切换到项目的Android构建临时目录(比如D:\Jeux\UNITY\SythwavesJumper\Temp\StagingArea\gradle),运行gradlew --status查看当前守护进程的版本和状态。
  • 接着运行gradlew --stop停止所有守护进程,重新启动Unity构建,会自动生成兼容的新守护进程。

4. 警告:android.enableR8=false已弃用

R8是Android的代码压缩工具,旧配置已经被淘汰了,换个新写法:

  • 打开项目的Assets/Plugins/Android/gradle.properties文件(没有的话就新建一个),把android.enableR8=false替换成android.r8.mode=none,既禁用R8又符合新的Gradle规范。

5. UnityPlayerActivity.java使用已弃用API的警告

这个是Unity自带的Activity类用了Android旧API,一般不影响构建,但要消除警告的话:

  • 打开Unity的Player Settings,在Android的Publishing Settings里,如果你没自定义主Activity,直接忽略就行;如果有自定义Activity,建议参考Unity最新的Android模板代码更新你的Activity,替换掉弃用的API。
  • 要是想看到详细警告信息,就在unityLibrary的build.gradle里的android -> compileOptions中加一行:options.compilerArgs.add("-Xlint:deprecation"),不过这只是看详情,还是用新模板更彻底。

6. 任务:launcher:checkDebugDuplicateClasses执行失败

这是导致构建失败的核心问题,基本是Ads和IAP引入了重复的类库:

  • 打开Package Manager,确保Google Mobile Ads和In-App Purchasing包的版本兼容,最好都更到最新稳定版,避免依赖版本冲突。
  • 去Assets/Plugins/Android目录,删掉重复的.aar或.jar文件,比如如果有多个版本的play-services-ads,只留最新的那个。
  • 在Unity的Player Settings -> Android -> Publishing Settings里勾选Custom Gradle Template,打开生成的launcher/build.gradle,添加代码排除重复依赖:
    dependencies {
        implementation (name: 'google-mobile-ads', ext:'aar') {
            exclude group: 'com.google.android.gms'
        }
        implementation (name: 'unity-iap', ext:'aar') {
            exclude group: 'com.google.android.gms'
        }
    }
    
    把包名换成你项目里实际的名称,这样能强制统一依赖版本。
  • 另外,在gradle.properties里加上android.useAndroidX=true和android.enableJetifier=true,确保所有依赖都迁移到AndroidX,避免旧Support库和AndroidX的冲突。

7. CommandInvokationFailure: Gradle构建失败

这个是前面某个错误导致的最终结果,解决完上面的问题,这个报错自然就消失了。

最后提醒下:解决完所有问题后,先清理Unity的Temp和Library目录,重启Unity再构建,能避免很多缓存带来的奇怪问题。

内容的提问来源于stack exchange,提问作者Nathan Bonelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 00:22:28