OS X下Unity构建Android游戏遇Gradle 2.10版本需求报错求助
先把你遇到的错误贴出来,方便大家对照:
CommandInvokationFailure: Gradle构建失败。执行命令为:
/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"
错误输出显示:FAILURE: Build failed with an exception. * Where: Build file '[...]/UnityProject/T...,同时系统提示需要Gradle version 2.10。
这个问题本质是Unity默认使用的Gradle版本(这里是4.0.1)和你的项目要求的2.10不匹配,给你三个亲测有效的解决办法:
办法一:在Unity中指定Gradle版本(推荐)
这是最稳妥的方式,不会影响其他Unity项目:
- 打开Unity,点击顶部菜单栏的
Edit->Preferences - 在弹出的窗口里选择
External Tools标签,找到Android区域 - 勾选 Use custom Gradle template,Unity会自动在你的项目目录下生成
Assets/Plugins/Android/gradleTemplate.properties文件 - 找到这个文件,用文本编辑器打开,找到
org.gradle.version这一行,把值改成2.10,保存文件 - 重新尝试构建Android Release版本,应该就能正常编译了
办法二:替换Unity自带的Gradle版本
如果你希望所有Unity项目都用Gradle 2.10,可以直接替换Unity自带的Gradle:
- 先备份Unity原有的Gradle文件夹:打开Finder,前往路径
/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/gradle,把这个文件夹重命名为gradle-backup-4.0.1 - 下载Gradle 2.10的压缩包(注意选OS X对应的版本),解压后得到一个
gradle-2.10文件夹 - 把这个文件夹重命名为
gradle,然后移动到/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/目录下 - 如果遇到权限问题,打开终端,输入
sudo mv /path/to/gradle-2.10 /Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/gradle,输入你的系统密码确认即可
办法三:确认JDK兼容性
你用的JDK1.8.0_151是完全兼容Gradle 2.10的,不过还是建议检查一下Unity的JDK路径是否正确:
- 回到
Preferences->External Tools - 确认Android区域的
JDK Location指向的是/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home,如果不是的话手动选择这个路径
我当时用第一个办法就解决了问题,你可以先试试这个,不行再换其他办法。
内容的提问来源于stack exchange,提问作者Eloi Navarro

