它目前正在被另一个Gradle实例使用

我是Gradle构建系统的新手。我想在上面做一些基本的功能。我正在命令行中运行/构建它。我指的是用户指南。还有,做一些简单的任务。

当我开始运行简单的任务时,它被成功构建。但是,经过一段时间后,它将显示"It is currently in use by another Gradle instance"并变成BUILD FAILED。我正在使用终端运行任务。那时候我什么都没做。

如果我关闭产生错误的终端,这个问题就解决了。但是,我知道这不是解决办法。

为什么这个错误经常出现?

如何解决?

并且,请参考任何链接来提高我对Android中Gradle Build系统的知识。

184963 次浏览

我被这个错误困住了,不得不清除用户的.gradle/caches/文件夹和项目的.gradle/文件夹的内容才能重新开始。

不知道是什么引起的,可能是一个失败的构建,使这些文件处于锁定状态?

通过执行如下命令删除gradle缓存中的锁文件:

find ~/.gradle -type f -name "*.lock" -delete

这可能是因为Android Studio的实例不止一个。

我没有必要删除任何文件来修复这个错误。

我遇到的问题是Gradle实例挂起了,并且在我的任务列表中有6个命令提示项,这些命令提示项是由Java生成的。

强制关闭命令提示符实例允许我像往常一样继续工作。

它为我工作 问题:- < / p >

当前正在被另一个Gradle实例使用。业主PID: 6896我们的PID: 5048业主操作:我们的操作:锁定”

解决方案:

  1. 关闭Android Studio,打开任务管理器,结束java.exe进程
  2. 打开derectory ....gradle\caches。
  3. 删除jar2。锁文件。
  4. 打开android Studion并清理项目。

只是关闭java.exe进程解决我的问题。

——编辑——

如果没有修复,则:

  • 关闭OpenJdkPlatform进程。

如果没有修复,则:

  • 删除所有”。锁定。gradle目录中的"文件和子目录(windows: C:\Users\Username\.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的outbound流量,

    sudo iptables -A OUTPUT -p udp -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    
  • allowing incoming traffic from 127.0.0.1

    sudo iptables -A INPUT -s 127.0.0.1 -p udp -j ACCEPT
    

solved the issue. A discussion of a similar problem at github.

And, Please refer any link to improve my knowledge on Gradle Build system in Android.

The udacity gradle course, if you have some time.

Windows机器:

打开任务管理器(按Ctrl-Alt-Delete并检查进程)

如果你运行两个android studio实例,关闭一个(结束任务)

->关闭“OpenJDK Platform Binary”

-> Gradle同步现在AndroidStudio和它将工作

Windows操作系统:

我认为它与一个锁文件有关,所以我只是去了项目文件夹中的.gradle\buildOutputCleanup,删除了cache.properties.lock文件并重新构建了项目。它工作得很完美。

打开终端,移动到项目路径,然后根据操作系统运行: Gradlew clean或。/ Gradlew clean

我也遇到过同样的问题,我做了两步就解决了。

  1. 我的JDK没有安装在Mac上(我忘了安装),我安装了它。
  2. 我删除了位于这个路径/Users/icon_developer/的缓存文件夹中的所有项目。Gradle /和重建项目。 它工作!李< / >

我在mac上也遇到了同样的问题:

注意,你的项目不是在一个外部硬盘上。项目的位置必须在带有操作系统的硬盘上。

(构建Ionic应用程序)

< p >最后,每个人都 我有完整的解决方案

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

我可能会迟到,但看起来是一个快速有效的解决方案。

请执行以下步骤。

  1. 执行ps -ef | grep gradle
  2. 打开终端,移动到~ / .gradle /缓存路径
  3. 执行find ~/.gradle -type f -name "*.lock" | while read f; do rm $f; done
  4. 从Android studio中删除.gradle.idea文件夹。

这是完成了。

我被同一件事困住了。但很快就解决了。只需删除文件:

D:\.gradle\daemon\6.1.1\registry.bin.lock

此外,我已经从任务管理器中结束了OpenJDK。不管有没有帮助,他们俩都解决了这个问题。

我在我的项目中也面临着同样的问题,但我通过使项目无效来解决这个问题,所以在android studio中遵循以下步骤

File -> Invalidate Caches / Restart...

Android工作室将重新启动,您的问题应该得到解决。

对于MAC电脑

请打开“活动监视器”;并选择“记忆”;选项和强制静音Android工作室和其他正在运行的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应该工作正常,即使是在外部硬盘上。

< p >的评论: 如果文件看起来有一些变化,不要害怕重新提交。这可能只是缩进或换行的问题,因为你的外部磁盘可能与你原来的mac磁盘有不同的格式

在我的案例中,罪魁祸首是限制性防火墙,反病毒系统的一部分。

根据https://discuss.gradle.org/t/timeout-waiting-to-lock-file-hash-cache/21961/2https://github.com/elastic/elasticsearch/issues/50954#issuecomment-576772154gradle -问题- 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
gradlew --stop

我有一个类似的错误,运行上述命令为我工作。

在@Sean Stayns的回答中引用了一个场景,以防它能帮助到任何人:如果你把你的项目保存在谷歌Drive文件夹中——不要这样做。只需将项目移动到本地驱动器即可解决此问题。

在我们试图解决的情况下,我们也得到了“它目前正在被另一个Gradle实例使用”;错误,我们在这里尝试的任何东西都不起作用。进程ID也未知。我并没有立即想到要问项目被保存在哪里,所以如果Android Dev的新手将他们的项目保存到谷歌驱动器文件夹,只需移动到您的本地驱动器。我本想在@Sean Stayns的回答中留下这条评论,但我不能评论。希望它能让某些人受益。

Mac用户:

你需要给gradle许可:

sudo gradle

有时,您需要在每次构建错误后运行此代码几次

对我来说,它需要两次,首先我得到锁定错误,我运行这段代码,然后我再次得到另一个文件的锁定错误,所以我再次运行代码,在结束时它正常工作。

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
< p > org.gradle.cache。LockTimeoutException:等待锁定日志的超时时间 缓存用户缓存(C: \ \ unknown.gradle \ \ journal-1)。它目前在 使用另一个Gradle实例

我也遇到了同样的问题,我通过打开任务管理器并检查“OpenJDK平台二进制文件”的运行实例来解决它。除了Android Stduio之外,在后台进程中只是“结束任务”;这个任务对我来说很重要

只要删除你的.gradle文件夹在android文件夹

如果在File Explorer(WINDOWS)Finder(MAC)中不可用

Windows: 进入view选项并检查show hidden files

对于Mac

只需按cmd + shift + .

现在运行你的应用程序。

在窗户上。在Android工作室中打开终端窗口(用于在项目的根文件夹中开始)并倾斜

 .\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

现在,它可以像以前一样进行构建和运行