当前由另一个Gradle实例使用


109

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

当我开始运行简单任务时,它已成功构建。但是,一段时间后,它显示"It is currently in use by another Gradle instance"并变为BUILD FAILED。我正在使用终端来运行任务。那时我什么也没跑。

如果我关闭产生错误的终端,这个问题将得到解决。但是,我知道这不是解决方案。

为什么经常出现此错误?

怎么解决呢?

并且,请参考任何链接以提高我对Android Gradle Build系统的了解。


4
您是否有机会在守护程序模式下使用gradle ?您可以通过运行command进行检查gradle --stop。您可能希望获得输出,而没有Gradle守护程序正在运行Gradle守护程序已停止
TOPR

@topr我没有使用daemon模式..
Dhasneem

3
解决方案:(对我有用)步骤1.启动任务管理器,查找/确认没有两个java.exe实例正在运行。第2步。只需杀死任何一个java.exe或同时杀死这两个java.exe,然后再次启动Android Studio。享受
Lakhwinder Singh Dhillon,

Answers:


287

通过执行以下操作,删除gradle缓存中的锁定文件:

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

12
谢谢!在我额外跑步之后,它发挥了作用 find /path-to-project-dir/.gradle -type f -name "*.lock" | while read f; do rm $f; done
泰勒(Tyler)

4
今天,我又回到了这个问题,这次kill -9除了删除锁文件外,还需要一个过程。问题标题中的消息后紧跟着PID:出了什么问题:超时等待锁定任务历史记录缓存(,,,)。当前,另一个Gradle实例正在使用它。所有者PID:4354我们的PID:9500
约书亚·戈德堡

@JoshuaGoldberg在杀死进程#4354之前,您是否检查过启动方式和启动时间?(我只是好奇。)
夜间经理

2
感谢您共享该命令,在删除gradle锁定文件之前和之后,我从未遇到过该问题,因此能够再次运行服务器。这应该标记为“最佳答案”
Raul Rivero

1
@ shashank-chandak放在bash壳中(终端或Cygwin)
夜间管理员

31

有时,快速的方式会带来不雅的交易,我们去了:

首先找到正在运行的所有gradle进程的#个

ps -A | grep gradle

之后,获取ID,一一杀死

sudo kill -9 <process ID>

现在你很好;-)


29

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

不知道是什么原因导致的,可能是使这些文件处于锁定状态的失败构建?


在这里注意到了这个问题-issue.gradle.org/browse/GRADLE-2795-尽管存在gradle错误,但我认为这是最好的解决方案。
2015年

3
实际上,我成功删除了〜/ .gradle / caches / *而没有碰到项目的.gradle目录。
约书亚·戈德堡

@JoshuaGoldberg,很幸运,但就我而言,我什至无法删除chaches文件夹。可能是什么问题?
2015年

我删除了.gradle / caches / **,它可以再次工作。奇怪的是,我只使用./gradlew,不应使用本地gradle版本,对吗?
本·格鲁特

1
@BenGroot AFAIK具有相同gradle版本的所有gradle守护程序共享相同的缓存(如果未从其他地方明确强制启动),无论它们从何处开始。
ubuntudroid

10

对于Windows机器:

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

->如果您运行两个Android Studio实例,请关闭一个(结束任务)

->然后关闭OpenJDK Platform Binary

-> Gradle现在可以在AndroidStudio上同步,并且现在可以正常使用


7

这可能是由于存在多个Android Studio实例而导致的。


同意,打开多窗口android studio并同时同步也导致了此问题
mochadwi

5

只需杀死java.exe进程即可解决我的问题。

-编辑-

如果不固定,则:

  • 杀死OpenJdkPlatform过程。

如果不固定,则:

  • 从.gradle目录和子目录(Windows:C:\ Users \ Username \ .gradle)中删除所有“ .lock”文件

如果不固定,则:

  • 重命名或删除.gradle目录,然后试。

阅读您的答案后,我删除了.gradle目录,现在重新编译应用程序后,它完全损坏了。
Red-devil

阅读您的答案后,我删除了.gradle目录,现在重新编译应用程序后,它完全损坏了。字体大小增加,填充增加,随机验证错误。我现在能做什么?
red-devil

1
您确定要删除.gradle目录吗?remove .gradle必须对您的应用程序代码没有任何副作用。它只是gradle缓存,如果您再次编译应用程序。gradle将下载必要的文件。尝试清理构建。
艾哈迈德·德纳维

3

该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

2

对于Windows操作系统:

我发现它与锁定文件有关,因此我只是转到项目文件夹中的.gradle \ buildOutputCleanup并删除了cache.properties.lock文件并重建了项目。运行良好。


2

CTRL + SHIFT + ESC打开任务管理器,现在找到OpenJDK并杀死它,转到错误所指向的位置

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

删除文件并重新同步,就可以了。


1

我在Mac上遇到了相同的问题:

请注意,您的项目不在外部硬盘上。项目的位置必须在操作系统的硬盘上。

(构建一个离子应用程序)


在我看来,问题也出在这里。前几天,我将项目转移到了外部驱动器。
DmitryKanunnikoff

1

在Mac上存在相同的问题,以上都不对我有用。但是,有效的方法是打开活动监视器并关闭正在运行的Java进程。我还注意到生成了一个.hprof文件,该文件已删除。在那之后,我运行了我的项目,它成功了。


1

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

执行以下步骤。

  1. 执行 ps -ef | grep gradle
  2. 打开终端并移至〜/ .gradle / caches路径
  3. 执行 find ~/.gradle -type f -name "*.lock" | while read f; do rm $f; done

完成。



0

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

我遇到的问题是Gradle实例已挂起,并且在我的任务列表中有6条命令提示符条目,这些条目是Java产生的。

强制关闭命令提示符实例使我能够照常继续工作。


0

它为我解决问题:

“错误:等待锁定罐子的超时它正在由另一个Gradle实例使用。所有者PID:6896我们的PID:5048所有者操作:我们的操作:锁定”

解:-

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

0

尝试了所有这些答案,包括杀死Java进程,在HOME_DIR和项目dir中删除.gradle,重新启动Android Studio甚至重新启动OS。

仅在启动gradle sync后,它才能开始正常工作。


0

很简单的解决方案:

无需kill Android Studio,只需终止OpenJdkPlatform进程,然后删除.lock位于以下位置的文件:

rootProject/.gradle/<version>/taskHistory

0

在终止进程和/或删除锁定文件的同时,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这个当然,如果你有一段时间了。



0

我面临着同样的问题。但是我通过重新启动android studio解决了它。我正在使用OneDrive保存我的项目。


0

我有同样的问题,我做了两个步骤,问题就解决了。

  1. 我的JDK未安装在Mac上(我忘了安装),我安装了它。
  2. 我从/Users/icon_developer/.gradle/路径中的缓存文件夹中删除了所有项目,并重建了项目。有效!

0

大家终于,我有完整的解决方案

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

0

我太喜欢同一件事了。但是很快就整理好了。只需删除文件:

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

另外,我已经从任务管理器中结束了OpenJDK。知道它有没有帮助,但是他们两个都解决了这个问题。



0

在Windows中解决此问题

  1. 转到任务管理器
  2. 在任务管理器的“详细信息”中找到所有者PID
  3. 结束任务

0

对于我而言,在Mac上,选择File顶部,然后选择“Invalidate Caches / Restart...完成”。

一个不错的简单解决方案,如果它也适用于您!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.