Gradle:无法创建FileHasher类型的服务

Ana*_*s K 18 gradle

我正在使用Gradle构建一个java项目.当我运行任何任务(组装,测试)时.我随机得到一个错误:

Could not create service of type FileHasher using 
GradleUserHomeScopeServices.createCachingFileHasher()
Run Code Online (Sandbox Code Playgroud)

以前有没有人有同样的问题?

Gradle V:3.5

java 8

我正在使用java插件.

谢谢,

Lei*_*ton 21

我面对同样的原因是因为我在构建过程中不小心碰到了ctrl + z,然后错误和你的一样.

我试图删除锁文件,但它没有解决问题.

然后我找到所有与gradle相关的过程ps aux | grep gradle,然后是kill -9 <pid>所有过程.构建支持正常.

  • 这有效,但也有点残酷。也可以运行`gradle --stop`以使守护程序正常停止-https://docs.gradle.org/current/userguide/gradle_daemon.html#sec:stopping_an_existing_daemon (4认同)

Zah*_*eed 19

在您的终端输入:

./gradlew build
Run Code Online (Sandbox Code Playgroud)

结果将是:

FAILURE: Build failed with an exception.

* What went wrong:
Could not create service of type FileHasher using GradleUserHomeScopeServices.createCachingFileHasher().
> Timeout waiting to lock file hash cache (/Users/zra/.gradle/caches/4.1-rc-1/fileHashes). It is currently in use by another Gradle instance.
  Owner PID: 17571
  Our PID: 26055
  Owner Operation: 
  Our operation: 
  Lock file: /Users/xxx/.gradle/caches/4.1-rc-1/fileHashes/fileHashes.lock
Run Code Online (Sandbox Code Playgroud)

现在做:

rm /Users/xxx/.gradle/caches/4.1-rc-1/fileHashes/fileHashes.lock
Run Code Online (Sandbox Code Playgroud)

并再次建立.

PS用您用过的任何用户名替换xxx.


小智 15

对我有用的是删除上面答案中建议的锁定文件:rm /Users/xxx/.gradle/caches/4.1-rc-1/fileHashes/fileHashes.lock并通过运行命令杀死空闲进程

./gradlew --status
Run Code Online (Sandbox Code Playgroud)

它生成一个 gradle 进程列表,其状态为

  PID STATUS   INFO
 23580 IDLE     5.2.1
 23860 IDLE     5.2.1
 19058 STOPPED  (stop command received)
Run Code Online (Sandbox Code Playgroud)

然后杀死其中一个空闲进程kill <PID>并再次运行 gradle 构建。


小智 7

一个简单的原因是 gradle 守护进程没有使用相同的环境变量启动。我在更改 gradle 用户主页时遇到了同样的问题。

只需停止守护进程:

gradle --stop
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这有效。与流行的答案不同的是删除锁定文件。 (2认同)

ahm*_*ira 6

.gradle/使用以下命令更改所有权:

sudo chown -R <USERNAME> .gradle/ 
Run Code Online (Sandbox Code Playgroud)