添加Unity Ads或AdMob后Unity Android项目构建失败(Gradle错误)
Unity添加广告SDK后构建Android出现Gradle无效错误的解决办法
问题描述
原本运行正常的Unity项目,在添加Unity Ads或通过Google包管理添加AdMob后,构建Android版本时抛出Exception: Gradle install not valid错误,完整错误日志如下:
Exception: Gradle install not valid Unity.Android.Gradle.AndroidGradle..ctor (System.String gradleLauncherPath, System.Int32 jvmHeapSize) (at <aa400196d78d4a0aab4d78eb144a59f3>:0) UnityEditor.Android.GradleWrapper.CreateGradleInstance () (at <62de111f18d242d586f9a078a33b1ba2>:0) UnityEditor.Android.PostProcessAndroidPlayer.ExecuteWarmup (System.String stagingArea) (at <62de111f18d242d586f9a078a33b1ba2>:0) UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, AndroidPlayerBuildProgram.Data.AndroidPlayerBuildProgramOutput buildProgramOutput) (at <62de111f18d242d586f9a078a33b1ba2>:0) UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <62de111f18d242d586f9a078a33b1ba2>:0) UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.Int32 subtarget, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <11d97693183d4a6bb35c29ae7882c66b>:0) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
已尝试过替换项目Gradle、重新设置Gradle路径、新建Unity盈利示例项目,均无法解决问题。
解决方案
检查Gradle与Unity版本兼容性
Unity不同版本对Gradle有明确版本要求,比如Unity 2022.x适配Gradle 7.x,2021.x适配Gradle 6.x。打开Edit > Preferences > External Tools,查看Android板块的Gradle版本,确保使用的版本符合当前Unity版本的官方规范,避免随意替换为不兼容的Gradle版本。清理Unity与Gradle缓存
- 关闭Unity,删除项目根目录下的
Library、Temp、obj文件夹 - 删除用户目录下的Gradle缓存:Windows路径为
C:\Users\[你的用户名]\.gradle,Mac路径为~/Users/[你的用户名]/.gradle - 重新启动Unity,等待缓存文件自动生成后再尝试构建
- 关闭Unity,删除项目根目录下的
验证JDK配置正确性
建议使用Unity自带的OpenJDK(在External Tools中勾选Use embedded JDK)。若手动指定JDK,需确保JDK版本与Gradle兼容:Gradle 7.x要求JDK 11及以上,Gradle 6.x支持JDK 8或11。修复广告SDK依赖冲突
- 在Player Settings的Publishing Settings中勾选
Custom Main Gradle Template,生成Assets/Plugins/Android/mainTemplate.gradle文件 - 打开该文件,检查
dependencies块中的依赖条目,删除重复项并统一冲突依赖的版本号(比如AdMob与Unity Ads可能共用的Google服务包) - 确保
buildscript中com.android.tools.build:gradle的版本与当前Gradle版本匹配
- 在Player Settings的Publishing Settings中勾选
重置Android构建设置
- 打开
Edit > Project Settings > Player > Android > Publishing Settings - 点击
Reset to Default按钮,重置所有Gradle相关模板与配置 - 重新导入广告SDK后再次尝试构建
- 打开
检查系统环境变量
确认系统的JAVA_HOME和GRADLE_HOME环境变量配置正确,且路径中无中文、空格或特殊字符。打开命令行执行java -version和gradle -v,验证是否能正常输出版本信息。
内容的提问来源于stack exchange,提问作者Noam Riahi
相关产品推荐
相关产品推荐

