You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Unity集成广告打包Android遇CommandInvokationFailure: Gradle构建失败求助

解决Unity集成广告后Android打包Gradle构建失败问题

嘿,我来帮你搞定这个问题!你遇到的情况很典型——集成广告功能后打包Android就触发CommandInvokationFailure: Gradle build failed,但开广告离线模式就正常,本质是广告SDK的在线依赖在Gradle构建时无法正常拉取,离线模式下Unity跳过了在线资源同步,所以能成功打包。下面是几个针对性的解决办法:

1. 排查网络代理或网络环境

很多时候这类构建失败是网络问题导致Gradle下载不了广告相关的依赖包:

  • 先检查Unity的代理设置:打开Edit > Preferences > External Tools,看看Gradle部分是否配置了正确的代理(如果你的网络需要代理的话),不需要的话就清空代理设置
  • 也可以直接修改项目生成的gradle.properties文件,添加或调整代理配置(不需要代理就删掉这些内容):
    systemProp.http.proxyHost=你的代理地址
    systemProp.http.proxyPort=代理端口
    systemProp.https.proxyHost=你的代理地址
    systemProp.https.proxyPort=代理端口
    

2. 切换到本地Gradle分发版

Unity默认的内嵌Gradle有时候会因为网络或版本兼容问题出状况,换成本地完整版更稳定:

  • 下载对应版本的Gradle(你这里用的是4.0.1,下载该版本的完整压缩包即可)
  • 在Unity里开启自定义Gradle模板:Edit > Project Settings > Player > Android > Publishing Settings > Build,勾选Use Custom Gradle Template
  • 打开生成的mainTemplate.gradle文件,修改distributionUrl指向你本地的Gradle包路径,比如:
    distributionUrl=file\:///D:/gradle-4.0.1-all.zip
    

3. 检查广告SDK的依赖配置

有时候广告插件的依赖声明有误,导致Gradle无法解析:

  • 打开Unity的广告插件配置界面,确认所有广告模块都已正确导入,没有缺失的资源
  • 如果是手动添加的依赖,检查mainTemplate.gradledependencies块,确保依赖地址正确,比如Google AdMob的依赖应该是类似这样(版本号要和你的Unity版本兼容):
    implementation 'com.google.android.gms:play-services-ads:20.6.0'
    

4. 清理Gradle缓存后重新构建

Gradle缓存损坏也可能引发构建失败:

  • 找到Unity项目目录下的Library\Bee\Android\Prj\IL2CPP\Gradle,删除里面的.gradlebuild文件夹
  • 回到Unity,点击File > Build Settings > Clean Build,之后再尝试重新打包

关键提示:查看完整错误日志

你现在只看到了错误开头,建议展开Unity Console里的CommandInvokationFailure错误详情,里面有Gradle输出的完整报错信息——比如是某个依赖找不到、权限问题还是其他原因,根据具体提示来解决会更高效。

内容的提问来源于stack exchange,提问作者Ciprian Simon

火山引擎 最新活动