Unity打包失败,Gradle构建失败问题良心解决,看完这个一定让你轻松

本文深入解析Unity打包过程中遇到的Gradle构建失败问题,包括JDK、SDK、NDK版本不匹配导致的错误,提供了解决方案,如更新SDK版本、调整JDK设置等,帮助开发者快速定位并解决打包难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[Unity] android打包失败问题良心解决,看完这个一定让你轻松

如果看完没解决就看这里

问题

CommandInvokationFailure: Gradle build failed.
C:\Program Files\Java\jdk1.8.0_171\bin\java.exe -classpath “C:\Program Files\Unity2017.4.2.0\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.6.jar” org.gradle.launcher.GradleMain “-Dorg.gradle.jvmargs=-Xmx1024m” “assembleRelease”

stderr[

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring root project ‘gradleOut’.

Failed to install the following Android SDK packages as some licences have not been accepted.
build-tools;28.0.2 Android SDK Build-Tools 28.0.2
To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html

Using Android SDK: C:\android-sdk_r24.4.1-windows\android-sdk-windows

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 10s
]
stdout[
Starting a Gradle Daemon, 2 incompatible Daemons could not be reused, use --status for details
WARNING: Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’ and ‘api’.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
WARNING: The specified Android SDK Build Tools version (28.0.0) is ignored, as it is below the minimum supported version (28.0.2) for Android Gradle Plugin 3.2.0.
Android SDK Build Tools 28.0.2 will be used.
To suppress this warning, remove “buildToolsVersion ‘28.0.0’” from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.
Checking the license for package Android SDK Build-Tools 28.0.2 in C:\android-sdk_r24.4.1-windows\android-sdk-windows\licenses
Warning: License for package Android SDK Build-Tools 28.0.2 not accepted.
]
stdout[
NDK is missing a “platforms” directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to D:\sdk\android-sdk-windows\ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

Observed package id ‘build-tools;28.0.0-rc1’ in inconsistent location ‘D:\sdk\android-sdk-windows\build-tools\28.0.0-preview’ (Expected ‘D:\sdk\android-sdk-windows\build-tools\28.0.0-rc1’)
code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action1 progress, System.String error) UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action1 progress)
Rethrow as GradleInvokationException: Gradle build failed
UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action`1 progress)
UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

为什么会发生

打包的时候出现失败,因为我遇见这个问题三次了 在百度上搜的答案是让我把打包选项的 Gradle换成Internal 这无非是高校
在这里插入图片描述

解决之策

你的错误肯定与我不同,找原因
无非是 JDK SDK NDK 版本问题
如果你看不懂报错 就复制到翻译软件上
在这里插入图片描述
从图中可以看出 我的错误是因为SDk版本低 让我尝试28.0.2 索性我就升级了一下SDK
升级方法:图箭头所示选择需要的版本
在这里插入图片描述
如果是SDK问题就会解决

如果是JDK问题呢
将JDK版本降低至jdk 8及以下即可(这里以Java SE Development Kit 8u161为例:)
可以是jdk1.8.0_171

如果你电脑上已经安装其他版本的JDK 怎么再换JDK呢
之前一直使用的是JDK1.8版本,现在要换成JDK1.7的!看见网上有很多不知道如何切换的。所以写出来,供大家分享!

我现在电脑上安装了JDK1.7和JDK1.8。接下来就是配置环境变量了!

Path配置
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

JAVA_HOME配置
C:\Program Files\Java\jdk1.8.0_66

CLASSPATH配置
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

java命令
java -version

下面切换成JDK1.7的只需要该下环境变量就可以了

更改JDK版本方式:(举例1.7)
步骤一:
将JAVA_HOME变量中写入现在的JDK1.7路径。
C:\Program Files\Java\jdk1.7.0_80
步骤二:
在PATH变量中写入JDK1.7的jre下得bin路径,(写在最前面
C:\Program Files\Java\jre7\bin

再cmd中输入 java -version 回车 就发现JDK已经换了

这样,我们就将JDK切换了!还不用卸载原来的JDK。如果还想改回原来的JDK,只需将JDK的配置删除就可以了!

如果你没有NDK 就下载一个NDK

在这里插入图片描述

附加:如果报的第一个错误是unity-class.jar的错误(大概意思是本地磁盘没有这个文件无法写入),解决:重装Unity

到此 这个问题一定解决 记录下来 以后轻松面对

如果你接了广告,有很多是因为广告版本不匹配的问题 也可能是广告和和本地Gradle版本不匹配
如果没解决就看这里

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值