我想做一些基本的函数。我正在命令行中运行/构建它。我在看用户指南。还有,做一些简单的任务。
当我开始运行简单的任务时,它被成功构建。但是,在一段时间后,它会显示“它目前正在被另一个Gradle实例使用”,并变成BUILD FAILED。我正在使用终端运行任务。那时候我什么都没做。
如果我关闭产生错误的终端,这个问题就解决了。但是,我知道这不是解决办法。
为什么这个错误经常出现?
如何解决?
并且,请参考任何链接来提高我对Android中Gradle Build系统的知识。
我想做一些基本的函数。我正在命令行中运行/构建它。我在看用户指南。还有,做一些简单的任务。
当我开始运行简单的任务时,它被成功构建。但是,在一段时间后,它会显示“它目前正在被另一个Gradle实例使用”,并变成BUILD FAILED。我正在使用终端运行任务。那时候我什么都没做。
如果我关闭产生错误的终端,这个问题就解决了。但是,我知道这不是解决办法。
为什么这个错误经常出现?
如何解决?
并且,请参考任何链接来提高我对Android中Gradle Build系统的知识。
我被这个错误所困扰,不得不删除用户的.gradle/caches/文件夹的内容和项目的.gradle/文件夹的内容才能继续运行。
不知道是什么引起的,可能是一个失败的构建,使这些文件处于锁定状态?
我没有必要删除任何文件来修复这个错误。
我遇到的问题是Gradle实例挂起了,并且在我的任务列表中有6个命令提示项,这些命令提示项是由Java生成的。
强制关闭命令提示符实例允许我像往常一样继续工作。
它为我工作 问题:
当前正在被另一个Gradle实例使用。业主PID: 6896我们的PID: 5048业主操作:我们的操作:锁定”
解决方案:
关闭Android Studio,打开任务管理器,结束java.exe进程 打开derectory ....gradle\caches。 删除jar2。锁文件。 打开android Studion并清理项目。
只是杀死java.exe进程修复我的问题。
——编辑——
如果没有修复,则:
关闭OpenJdkPlatform进程。
如果没有修复,则:
删除所有”。(windows: c:\ users \用户名\.gradle)。
如果没有修复,则:
重命名或删除.gradle目录后重试。
这些答案我都试过了,包括杀死java进程,在HOME_DIR和project dir中删除.gradle,重启Android Studio,甚至重启OS。
它开始正常工作后,我启动gradle同步。
非常简单的解决方案:
不需要杀死Android Studio,只需杀死OpenJdkPlatform进程, 然后删除下面的.lock文件:
rootProject/.gradle/<version>/taskHistory
当终止进程和/或删除锁文件工作时,Gradle应该能够自己处理这个问题,永久地解决这个问题。这个问题报告暗示了解决方案:Gradle无法与Gradle服务通信。
检查一下您本地的网络防火墙。就我而言,
允许从127.0.0.1到127.0.0.1的出站流量, sudo iptables -A OUTPUT -p udp -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 允许来自127.0.0.1的传入流量 sudo iptables -A INPUT -s 127.0.0.1 -p udp -j ACCEPT
解决了这个问题。github上关于类似问题的讨论。
并且,请参考任何链接来提高我对Android中Gradle Build系统的知识。
udacity gradle课程,如果你有时间的话。
Windows机器:
打开任务管理器(按Ctrl-Alt-Delete并检查进程)
如果你运行两个android studio实例,关闭一个(结束任务)
->关闭“OpenJDK Platform Binary”
-> Gradle同步现在AndroidStudio和它将工作
Windows操作系统:
我认为它与一个锁文件有关,所以我只是去了项目文件夹中的.gradle\buildOutputCleanup,删除了cache.properties.lock文件并重新构建了项目。它工作得很完美。
我也遇到过同样的问题,我做了两步就解决了。
我的JDK没有安装在Mac上(我忘了安装),我安装了它。 我删除了位于这个路径/Users/icon_developer/的缓存文件夹中的所有项目。Gradle /和重建项目。 它工作!
每个人最后, 我有完整的解决方案
Error :- Timeout Gradle cashe its running in other gradle
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Please add this Line in Wrapper.Propertis and Sync now
After Sync the project When
Invalidthcast\restart to get the requesting componants
在Mac上遇到同样的问题时,以上这些方法对我都不起作用。但是,有效的方法是打开活动监视器并关闭正在运行的java进程。我还注意到生成了一个.hprof文件,我删除了它。在那之后,我运行了我的项目,它成功了。
按CTRL + SHIFT + ESC打开任务管理器,现在找到OpenJDK并杀死它到错误指向的地方
D:\.gradle\daemon\4.10.1\registry.bin.lock
删除文件并重新同步就可以了。
有时候快速的方式会带来不优雅的交易,就是这样:
首先找到所有正在运行的gradle进程的#
ps -A | grep gradle
然后,拿到身份证,一个一个杀了他们
sudo kill -9 <process ID>
现在你很好了;-)
Gradle失败消息后面通常跟着相关的进程id,所以应该是这样
Gradle sync failed: Timeout waiting to lock daemon addresses registry [...].
It is currently in use by another Gradle instance.
Owner PID: 1234
Our PID: 5678
Owner Operation: ...
为了解锁,只需杀死所有者进程:
sudo kill -9 1234
我可能会迟到,但看起来是一个快速有效的解决方案。
请执行以下步骤。
执行ps -ef | grep gradle 打开终端,移动到~/。gradle /缓存路径 执行find ~/。Gradle -type f -name "*。读取f时锁定“|”;做rm $f;完成 删除Android studio中的。gradle和。idea文件夹。
这是完成了。
我被同一件事困住了。但很快就解决了。只需删除文件:
D: \ .gradle \ \但是\ registry.bin.lock的守护进程
此外,我已经从任务管理器中结束了OpenJDK。不管有没有帮助,他们俩都解决了这个问题。
我在我的项目中也面临着同样的问题,但我通过使项目无效来解决这个问题,所以在android studio中遵循以下步骤
File -> Invalidate cache / Restart…
Android工作室将重新启动,您的问题应该得到解决。
对于MAC电脑
请打开“Activity Monitor”,选择“memory”选项,强制静音Android studio和其他正在运行的java进程,就可以解决这个问题。
Windows用户:
Gradle失败消息后面通常跟着相关的进程id,所以应该是这样 Gradle同步失败:超时等待锁定守护进程地址注册表[…] 它目前正在被另一个Gradle实例使用。
Owner PID: 8080
Our PID: 89765
Owner Operation: ...
In order to unlock, just kill the owner process:
taskkill /PID 8080 /F
taskkill /PID 89765 /F
Mac用户在第一次Gradle同步
我在使用IntelliJ从GitLab克隆时也遇到了同样的问题。 事实上,正如这里提到的:https://stackoverflow.com/a/53269914/2231299 需要指定内部硬盘。
在我的例子中,步骤如下:
•本地克隆
•等待1st gradle同步执行
•移动目录到外部硬盘
•在新位置重新打开项目,然后gradle应该工作正常,即使是在外部硬盘上。
评论: 如果文件看起来有一些变化,不要害怕重新提交。这可能只是缩进或换行的问题,因为你的外部磁盘可能与你原来的mac磁盘有不同的格式。
在我的案例中,罪魁祸首是限制性防火墙,反病毒系统的一部分。
根据https://discuss.gradle.org/t/timeout-waiting-to-lock-file-hash-cache/21961/2和https://github.com/elastic/elasticsearch/issues/50954#issuecomment-576772154, gradle-issue-8750, gradle服务器正在保留锁,并在其他gradle进程请求时释放它。通信通过本地主机上的UDP套接字进行。因此,如果有防火墙阻止这种通信,gradle保持文件锁和其他gradle进程不能继续。
尝试禁用AV /防火墙,看看问题是否消失。然后运行gradle,如下所示,以更好地了解发生了什么。
gradle --debug --no-daemon
调试日志显示锁的所有者,如果问题仍然存在,杀死锁的所有者。
2021-05-20T19:32:41.105+0200 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] The file lock is held by a different Gradle process (pid: 67494, lockId: 628651820260732672). Pinged owner at port 58442
2021-05-20T19:32:42.330+0200 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] The file lock is held by a different Gradle process (pid: 67494, lockId: 628651820260732672). Pinged owner at port 58442
然后kill -9 67494终止所有者并释放锁。
否则,一段时间后gradle会终止,并报错(在这里说明,这样很容易找到):
* What went wrong:
Gradle could not start your build.
> Could not create service of type ResourceSnapshotterCacheService using GradleUserHomeServices.createResourceSnapshotterCacheService().
> Timeout waiting to lock file hash cache (/Users/myusername/.gradle/caches/6.9/fileHashes). It is currently in use by another Gradle instance.
Owner PID: 67494
Our PID: 68313
Owner Operation:
Our operation:
Lock file: /Users/myusername/.gradle/caches/6.9/fileHashes/fileHashes.lock
在@Sean Stayns的回答中引用了一个场景,以防它能帮助到任何人:如果你把你的项目保存在谷歌Drive文件夹中——不要这样做。只需将项目移动到本地驱动器即可解决此问题。
In the case we were trying to solve, were were also getting the "It is currently in use by another Gradle instance" error and nothing we tried here worked. The process ID was unknown as well. It didn't immediately occur to me to ask where the project was being saved, so in case anyone new to Android Dev is saving their projects to a Google Drive folder, just move over to your local drive. I would have just left this as a comment in @Sean Stayns's answer, but I can't comment. Hopefully it benefits someone.
有时,您需要在每次构建错误后运行此代码几次
对我来说,它需要两次,首先我得到锁定错误,我运行这段代码,然后我再次得到另一个文件的锁定错误,所以我再次运行代码,在结束时它正常工作。
find ~/.gradle -type f -name "*.lock" -delete
除了上面的答案,你还需要弄清楚为什么gradle进程退出而不释放锁来永久修复它。
在我的情况下,我做了所有*。锁定文件删除和Android Studio的无效缓存选项。但问题不断出现。
在终端中手动运行gradlew显示,当JVM堆空间耗尽时,gradle进程会过早退出。这个回答帮助解决了这个问题。
./gradlew build #to detect what crashes gradle processes
./gradlew --stop #to stop any running gradle processes
在解决问题后(例如:堆耗尽)
find .gradle/ -type f -name "*.lock" -delete #delete lock files
./gradlew build #Try building the project
locktimeoutexception:等待锁定日志的超时时间 缓存用户缓存(C: \ \ unknown.gradle \ \ journal-1)。它目前在 被另一个Gradle实例使用
我也面临着同样的问题,我通过打开任务管理器,并在后台进程中检查“OpenJDK平台二进制文件”的运行实例,除了Android Stduio,只是“结束任务”这个任务和为我工作
只要删除你的。gradle文件夹在android文件夹
如果在您的文件资源管理器(WINDOWS)或查找器(MAC)中不可用
Windows操作系统: 转到查看选项并检查显示隐藏文件
对于Mac
只需按CMD + shift +。
现在运行你的应用程序。
在窗户上。在Android Studio中打开终端窗口(用于在项目的根文件夹中启动)并倾斜
.\gradlew --stop
我回答说:
Welcome to Gradle 7.3.3!
Here are the highlights of this release:
- Easily declare new test suites in Java projects
- Support for Java 17
- Support for Scala 3
For more details see https://docs.gradle.org/7.3.3/release-notes.html
Stopping Daemon(s)
1 Daemon stopped
现在,它可以像以前一样进行构建和运行