Flutter Android项目Gradle报错求助:文件哈希缓存锁超时
嘿,这个问题我之前碰到过好几次,和你用的Firebase/Google Sign In登录功能没啥关系,就是Gradle的进程冲突搞的鬼。先看看你遇到的具体错误核心信息:
等待锁定文件哈希缓存(C:\Users\User.gradle\caches\5.6.2\fileHashes)超时。该缓存当前正被另一个Gradle实例占用。所有者PID:19528 本进程PID:24344 所有者操作: 本进程操作:锁定文件:C:\Users\User.gradle\caches\5.6.2\fileHashes\fileHashes.lock
错误提示里的无法通过GradleUserHomeScopeServices.createCachingFileHasher()创建FileHasher类型的服务,本质就是Gradle的缓存文件被别的进程占着,当前进程拿不到锁。给你几个解决办法,按顺序试就行:
第一步:杀掉占用缓存的Gradle进程
直接针对错误里提到的所有者PID(19528)下手,打开命令提示符输入:taskkill /F /PID 19528如果找不到这个进程,或者不确定,也可以直接干掉所有Gradle相关进程:
taskkill /F /IM gradle.exe当然你也可以打开任务管理器,找到Gradle的进程手动结束它。
第二步:手动删除锁定文件
如果杀进程后还是不行,就直接找到那个锁定文件删掉:
路径是C:\Users\User\.gradle\caches\5.6.2\fileHashes\fileHashes.lock,删掉这个文件之后再重新运行flutter run。第三步:彻底清理缓存(可选)
如果上面两步都没解决,就做一次彻底的清理:flutter clean flutter pub get然后再执行
flutter run,应该就能正常启动了。预防小技巧
以后尽量不要强行中断Flutter的运行进程(比如直接关掉终端),最好用Ctrl+C正常停止,这样Gradle能自己释放缓存锁;另外也可以考虑把项目里的Gradle版本升级到更稳定的版本,在android/build.gradle文件里修改distributionUrl对应的版本就行。
内容的提问来源于stack exchange,提问作者sahmaragaev0

