先说结论:
项目所在的移动硬盘,不能用exFat磁盘格式,否则Gradle会出错。
使用Mac作为打包机,由于硬盘满了,挂了一块移动硬盘来作为项目的工作硬盘,结果用Unity打包时死活打不出来。用TeamCity以命令行形式打包时,报说有编译错误,但是在这台机器上用Unity打开这个项目又没有任何编译错误。尝试手动打包,果然会报错:
CommandInvokationFailure: Gradle build failed.
...
stderr[
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
FAILURE: Build failed with an exception.
* What went wrong:
Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
> Could not create service of type FileHasher using .createFileHasher().
单搜这个报错,说是用了Java11,而Gradle只能用Java8。检查了一圈没有这个问题。
在打包机上安装了Android Studio,Unity项目导出为安卓工程,在AS里Build,发现会报说checksums.lock无法删除之类;手动删除之后又花式报各种.lock文件的问题。
这时候就有点怀疑是权限之类的问题,网上各种搜,Issues with gradle on an exFAT filesystem on MacOS · Issue #20444 · gradle/gradle (github.com) 看到这么个问题。
将项目移动到普通硬盘上打包,发现正常了。
最后将移动硬盘格式化为 不区分大小写的Mac XXX,问题解决。这里还要注意不能格式化成 区分大小写的那个格式,否则Unity打包时会报错让你换到不区分大小写的磁盘上。
标签:移动硬盘,Mac,Gradle,failed,Unity,打包 From: https://www.cnblogs.com/thpGames/p/16628843.html