【发布时间】:2018-05-03 16:50:09
【问题描述】:
我正在 OS X 上的 Unity 中为 Android 构建游戏,但出现此错误。
CommandInvokationFailure: Gradle build failed.
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/java -classpath "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-4.0.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"
stderr[
FAILURE: Build failed with an exception.
* Where:
Build file '[...]/UnityProject/Temp/gradleOut/build.gradle' line: 19
* What went wrong:
A problem occurred evaluating root project 'gradleOut'.
> Failed to apply plugin [id 'com.android.application']
> Gradle version 2.10 is required. Current version is 4.0.1. If using the gradle wrapper, try editing the distributionUrl in [...]/UnityProject/Temp/gradleOut/gradle/wrapper/gradle-wrapper.properties to gradle-2.10-all.zip
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED in 1s
]
stdout[
]
exit 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.Action`1 progress, System.String error)
UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action`1 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)
Unity 使用 Gradle 版本 2.10,但显然当前版本是 4.0.1(这是否意味着我的 PC 在某处定义了“默认”gradle 版本?)
编辑(5 月 3 日)
我设法导出项目,用 Android Studio 打开它,我可以强制使用 gradle 版本 2.10 和 Android 插件版本 2.1.0 通过这种方式,项目编译完成,我可以在设备上执行它。
有没有办法在 Unity 上做类似的事情?还是系统范围的?
到目前为止我做了什么(没有成功)
- 按照建议,我查找了文件
gradle-wrapper.properties,但它不存在,而且由于它位于Temp文件夹下,因此它不是一个很有前途的路径。 - 我尝试创建这样的文件并按照说明配置
distributionUrl。 - 做了
brew install gradle,然后在项目文件夹上我尝试了gradle wrapper --gradle-version 2.10 - 卸载 Unity,删除
~/.gradle文件夹。重新安装 Unity。 - 尝试使用 SDKMAN! 安装 gradle(这也将 Gradle 2.10 设置为默认值)
我的具体场景
- 团结 2017.4.2f2
- macOS Sierra
差不多就这些了,有什么想法吗?
谢谢!
编辑
- 添加了更多不成功的尝试
- 添加了完整的错误
【问题讨论】:
-
感谢@IntelliJAmiya,但不幸的是,我正在使用 Unity,而不是 IntelliJ 或 Android Studio,所以这些答案中的大多数甚至不适用于我的问题
-
您是否在 Unity 项目中使用任何插件?如果有,你能列出来吗?
-
嗨@Programmer 不,我没有使用任何插件(还)
-
好的,几分钟后回来查看我的答案。