Mac机使用移动硬盘遇到Gradle build failed问题及解决

先说结论:

  项目所在的移动硬盘,不能用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打包时会报错让你换到不区分大小写的磁盘上。

posted on 2022-08-26 18:46  tang_huipang  阅读(697)  评论(0编辑  收藏  举报