我正在使用Gradle构建一个java项目。 当我运行任何任务(组装,测试)时。 我随机得到一个错误:
Could not create service of type FileHasher using
GradleUserHomeScopeServices.createCachingFileHasher()
之前有没有人遇到过同样的问题?
Gradle V:3.5
java 8
我正在使用java插件。
谢谢,
答案 0 :(得分:18)
在您的终端中键入:
./gradlew build
结果将是:
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
现在做:
rm /Users/xxx/.gradle/caches/4.1-rc-1/fileHashes/fileHashes.lock
再次建造。
P.S用您用的任何用户名替换xxx。
答案 1 :(得分:13)
我面临着同样的问题,因为在构建过程中我不小心碰到了ctrl + z,然后错误与您相同。
我试图删除锁定文件,但无法解决问题。
然后我发现with open(file_name, 'r') as stream:
size = os.stat(stream.fileno()).st_size
with tqdm(total=size) as progress:
wrapper = ProgressFileWrapper(stream, progress.update)
data = yaml.load(wrapper, Loader=Loader)
和gradle相关的所有过程,然后全部ps aux | grep gradle
。构建恢复正常。
答案 2 :(得分:4)
对我有用的是按照上述答案中的建议删除锁文件:const Search = ({ searchSuggestion }) => {
const previousController = useRef();
const onkeychange = async (e) => {
if (previousController.current) {
previousController.current.abort();
}
let string = e.target.value
const controller = new AbortController()
const signal = controller.signal
previousController.current = controller;
const suggest = await getSearchSuggestion({
string,
signal,
})
}
return (
<input
type="text"
autoComplete="off"
placeholder="Search"
className="search"
onChange={onkeychange}
/>
)
}
,并通过运行命令杀死IDLE进程
rm /Users/xxx/.gradle/caches/4.1-rc-1/fileHashes/fileHashes.lock
它会生成状态为
的gradle进程列表./gradlew --status
然后通过 PID STATUS INFO
23580 IDLE 5.2.1
23860 IDLE 5.2.1
19058 STOPPED (stop command received)
杀死其中一个空闲进程,然后再次运行gradle构建。
答案 3 :(得分:4)
一个简单的原因是gradle守护进程没有使用相同的环境变量启动。 更改gradle用户的主页时,我遇到了同样的问题。
只需停止守护程序:
gradle --stop
答案 4 :(得分:1)
使用以下命令更改.gradle/
的所有权:
sudo chown -R <USERNAME> .gradle/
答案 5 :(得分:0)
这对我有用:
关闭防病毒文件保护
使缓存无效/重新启动
运行应用
答案 6 :(得分:0)
答案 7 :(得分:0)
几天前对我来说这是同样的问题,现在只有您或用户正在阅读此解决方案。
卸载完整的android studio(表示“从控制面板卸载后,删除Android Studio的文件夹”) 要删除的文件夹:
C:\ Program Files-> Android, C:\ Users {用户文件夹名称}-> .android&.gradle和{与Android Studio相关的其他文件夹}
重新安装.exe
,并确保您的PC已以适当的速度连接到Internet。
按照该说明下载所有SDK文件,并仅在Android Studio中继续下载。 [请不要从其他来源下载,否则会显示错误,请小心]
单击新项目,然后选择空项目,然后输入名称并单击完成。
您将重定向到另一个窗口,然后开始的主要事情是安装GRADLE,因此,您应该具有很高的Internet连接性,它将自动下载,并且现在可以开始使用了。
答案 8 :(得分:0)
我无法在其他地方找到此信息,以防万一它有助于某人:
在ChromeOS(在Chromebook上)上运行Android Studio时,我遇到了同样的问题。
我已经与Linux共享了一个Google Drive文件夹(通过选择一个文件夹,右键单击并选择与Linux共享),并在那里创建了我的项目。构建因此错误而失败,删除锁定文件对我没有任何帮助。
通过在“ Linux文件夹”下重新创建项目,为我解决了问题。
答案 9 :(得分:0)
我遇到了同样的问题,解决方案是使用正确的用户登录,然后运行gradle。我是用没有权限运行任务的用户登录的。
答案 10 :(得分:0)
我刚刚将一个项目从Download
文件夹(在Mac上)移动到了另一个项目
答案 11 :(得分:0)
就我而言,我将整个项目保存在由 Google Drive Stream 管理的文件夹中。由于这是一个非常初级的文件系统,Android Studio 或 Gradle(我不知道是哪个)试图在 FS 上执行 Google Drive Stream 不允许的操作。
我只是将项目移到我的本地驱动器上并修复了它!
答案 12 :(得分:-1)
就我而言,最简单的解决方案就是运行
在Linux的情况下
sudo ./gradlew bundleRelease
如果 windows 则使用具有最高权限的用户登录。
因为权限不足导致出现这个错误