Es wird derzeit von einer anderen Gradle-Instanz verwendet

97

Ich bin neu im Gradle Build System. Ich möchte einige grundlegende Funktionen ausführen. Ich starte / baue es in der Kommandozeile. Ich beziehe mich auf das Benutzerhandbuch . Und einige einfache Aufgaben erledigen.

Als ich anfing, einfache Aufgaben auszuführen, wurde es erfolgreich erstellt. Aber nach einiger Zeit zeigt es sich "It is currently in use by another Gradle instance"und wird BUILD FAILED. Ich verwende ein Terminal, um die Aufgabe auszuführen. Ich habe damals nichts gelaufen.

Wenn ich das Terminal schließen würde, das den Fehler erzeugt, wäre dieses Problem gelöst. Aber ich weiß, dass es nicht die Lösung dafür ist.

Warum tritt dieser Fehler häufig auf?

Wie man es löst?

Bitte verweisen Sie auf einen beliebigen Link, um meine Kenntnisse über das Gradle Build-System in Android zu verbessern.

Dhasneem
quelle
4
Verwenden Sie gradle zufällig im Daemon-Modus ? Sie können dies überprüfen, indem Sie den Befehl ausführen gradle --stop. Sie würden erwarten, dass entweder keine Gradle-Daemons ausgeführt werden oder der Gradle-Daemon gestoppt wird .
topr
@ Topr Ich habe nicht Daemon-Modus verwendet ..
Dhasneem
3
Lösung: (Das hat bei mir funktioniert) Schritt 1. Starten Sie den Task-Manager und stellen Sie sicher, dass NICHT ZWEI Instanzen von java.exe ausgeführt werden. Schritt 2. Töten Sie einfach eine java.exe oder beide und starten Sie Android Studio erneut. Viel Spaß
Lakhwinder Singh Dhillon

Antworten:

268

Entfernen Sie die Sperrdateien im Gradle-Cache, indem Sie Folgendes ausführen:

find ~/.gradle -type f -name "*.lock" -delete
Der Nacht Manager
quelle
11
Vielen Dank! Es hat funktioniert, nachdem ich zusätzlich gelaufen binfind /path-to-project-dir/.gradle -type f -name "*.lock" | while read f; do rm $f; done
Tyler
4
Heute war ich wieder bei dieser Frage und dieses Mal musste ich kill -9zusätzlich zum Löschen der Sperrdateien einen Prozess durchführen. Der Nachricht im Fragentitel folgte sofort die PID: Was ist schief gelaufen: Zeitüberschreitung beim Sperren des Taskverlaufs-Cache (,,,). Es wird derzeit von einer anderen Gradle-Instanz verwendet. Besitzer PID: 4354 Unsere PID: 9500
Joshua Goldberg
@JoshuaGoldberg Haben Sie überprüft, wie und wann der Prozess Nr. 4354 gestartet wurde, bevor Sie ihn beendet haben? (Ich bin nur neugierig.)
Der Nachtmanager
2
Vielen Dank, dass Sie diesen Befehl freigegeben haben. Ich hatte dieses Problem noch nie zuvor und nachdem ich die Sperrdateien für gradle entfernt hatte, konnte ich meinen Server erneut ausführen. Dies sollte als "Beste Antwort" markiert werden
Raul Rivero
1
@ Shashank-Chandak in einer Bash-Shell (Terminal oder Cygwin)
Der Nachtmanager
29

Ich war mit diesem Fehler festgefahren und musste den Inhalt des .gradle/caches/Ordners meines Benutzers und den Inhalt des .gradle/Ordners meines Projekts wegblasen , um wieder loszulegen.

Sie sind sich nicht sicher, was es verursacht hat, möglicherweise ein fehlgeschlagener Build, der diese Dateien in einem gesperrten Zustand gehalten hat?

Ross Hambrick
quelle
Dieses Problem wird hier erwähnt - Issues.gradle.org/browse/GRADLE-2795 - Obwohl der Gradle-Fehler besteht, denke ich, dass dies die beste Lösung ist.
Joshua Goldberg
3
Eigentlich hatte ich Erfolg damit, ~ / .gradle / caches / * zu löschen, ohne das .gradle-Verzeichnis des Projekts zu berühren.
Joshua Goldberg
Glück für dich @JoshuaGoldberg, aber in meinem Fall kann ich den Chaches-Ordner nicht einmal löschen. Was könnte ein Problem sein?
Offshore
Ich hatte .gradle / caches / ** gelöscht und es funktioniert wieder. Seltsam ist, dass ich nur die ./gradlew verwende, die nicht die lokale Gradle-Version verwenden sollte, oder?
Ben Groot
1
@BenGroot AFAIK Alle Gradle-Daemons mit derselben Gradle-Version verwenden denselben Cache (sofern nicht ausdrücklich anders erzwungen), unabhängig davon, von wo aus sie gestartet wurden.
Ubuntudroid
23

Manchmal kommt der schnelle Weg in einem nicht eleganten Geschäft, los geht's:

Suchen Sie zuerst die Anzahl aller Gradle-Prozesse, die ausgeführt werden

ps -A | grep gradle

Holen Sie sich danach die IDs, töten Sie sie alle nacheinander

sudo kill -9 <process ID>

Jetzt bist du gut ;-)

PYK
quelle
9

Für Windows-Computer:

Öffnen Sie den Task-Manager (Strg-Alt-Entf und überprüfen Sie Prozess)

-> Wenn Sie zwei Instanzen von Android Studio ausführen, schließen Sie eine (Aufgabe beenden)

-> Schließen Sie dann OpenJDK Platform Binary

-> Gradle Sync jetzt auf AndroidStudio und es wird jetzt funktionieren

Yog
quelle
7

Dies kann passieren, weil es mehr als nur eine Instanz von Android Studio gibt.

Justin
quelle
Einverstanden, Öffnen von Multi-Window-Android-Studio und gleichzeitige Synchronisierung verursachte auch dieses Problem
Mochadwi
5

Nur töten java.exe Prozess fix mein Problem.

- Bearbeiten -

wenn nicht behoben dann:

  • Beenden Sie den OpenJdkPlatform-Prozess.

wenn nicht behoben dann:

  • Entfernen Sie alle ".lock" -Dateien aus dem .gradle-Verzeichnis und den Unterverzeichnissen (Fenster: C: \ Benutzer \ Benutzername \ .gradle).

wenn nicht behoben dann:

  • Benennen Sie das .gradle-Verzeichnis um oder löschen Sie es und versuchen Sie es erneut.
Ahmad Dehnavi
quelle
Nachdem ich Ihre Antwort gelesen hatte, löschte ich das .gradle-Verzeichnis und jetzt ist die App nach dem erneuten Kompilieren vollständig kaputt.
Roter Teufel
Nachdem ich Ihre Antwort gelesen hatte, löschte ich das .gradle-Verzeichnis und jetzt ist die App nach dem erneuten Kompilieren vollständig kaputt. Die Schriftgröße hat zugenommen, das Auffüllen hat zugenommen und es werden zufällige Validierungsfehler angezeigt. Was kann ich jetzt machen?
Roter Teufel
1
Sind Sie sicher, dass Sie nur das .gradle-Verzeichnis löschen? Das Entfernen von .gradle muss keine Nebenwirkungen auf Ihren App-Code haben. Es ist nur Gradle-Cache und wenn Sie Ihre App erneut kompilieren. gradle lädt die notwendigen Dateien herunter. versuchen Sie es mit einem sauberen Build.
Ahmad Dehnavi
3

Auf diese Gradle-Fehlermeldung folgen normalerweise die relevanten Prozess-IDs

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

Zum Entsperren beenden Sie einfach den Eigentümerprozess:

sudo kill -9 1234
Saschoar
quelle
2

Für Windows:

Ich dachte, es hätte etwas mit einer Sperrdatei zu tun, also ging ich einfach zu .gradle \ buildOutputCleanup im Projektordner und löschte die Datei cache.properties.lock und erstellte das Projekt neu. Es hat perfekt funktioniert.

Kayleb
quelle
1

Ich hatte das gleiche Problem auf dem Mac:

Achten Sie darauf, dass sich Ihr Projekt NICHT auf einer externen Festplatte befindet. Der Speicherort Ihres Projekts muss sich auf der Festplatte Ihres Betriebssystems befinden.

(Erstellen einer ionischen App)

Sean Stayns
quelle
Es scheint, dass in meinem Fall das Problem auch dies ist. Neulich habe ich das Projekt auf ein externes Laufwerk übertragen.
DmitryKanunnikoff
1

Da ich das gleiche Problem auf einem Mac hatte, funktionierte keines der oben genannten Probleme für mich. Was jedoch funktionierte, war das Öffnen des Aktivitätsmonitors und das Schließen eines laufenden Java-Prozesses. Mir ist auch aufgefallen, dass eine .hprof-Datei generiert wurde, die ich gelöscht habe. Danach habe ich mein Projekt ausgeführt und es hat funktioniert.

George Ampartzidis
quelle
1

Drücken Sie CTRL + SHIFT + ESC, um den Task-Manager zu öffnen. Suchen Sie ihn OpenJDKund beenden Sie ihn. Gehen Sie zu der Stelle, an der der Fehler angezeigt wird

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

Löschen Sie die Datei und synchronisieren Sie sie, und Sie können loslegen.

Steve Moretz
quelle
0

Ich musste keine Dateien entfernen, um diesen Fehler zu beheben.

Das Problem, das ich hatte, war, dass Gradle-Instanzen hängen geblieben waren und 6 Eingabeaufforderungseinträge in meiner Aufgabenliste waren, die von Java erzeugt wurden.

Durch das Erzwingen des Schließens der Eingabeaufforderungsinstanzen konnte ich die Arbeit wie gewohnt fortsetzen.

Knossos
quelle
0

Seine Arbeit für mich für Problem: -

"Fehler: Zeitüberschreitung beim Sperren von Gläsern Wird derzeit von einer anderen Gradle-Instanz verwendet. Besitzer-PID: 6896 Unsere PID: 5048 Besitzer-Betrieb: Unser Betrieb: Sperren"

Lösung:-

  1. Schließen Sie das Android Studio und öffnen Sie den Task-Manager und beenden Sie den Prozess java.exe
  2. Öffne das Refektorium .... gradle \ caches.
  3. Löschen Sie die Datei jar2.lock.
  4. Öffnen Sie Android Studion und bereinigen Sie das Projekt.
user3552453
quelle
0

Habe all diese Antworten ausprobiert, einschließlich Java-Prozess beenden, .gradle in HOME_DIR und im Projektverzeichnis löschen, Android Studio neu starten und sogar das Betriebssystem neu starten.

Es begann normal zu funktionieren, nachdem ich Gradle Sync gestartet hatte.

B-GangsteR
quelle
0

Sehr einfache Lösung:

Keine Notwendigkeit zu töten Android Studio, nur OpenJdkPlatformProzess beenden , dann löschen Sie die .lockDatei in:

rootProject/.gradle/<version>/taskHistory
Amir Hossein Ghasemi
quelle
0

Während das Beenden des Prozesses und / oder das Entfernen der Sperrdatei funktioniert, sollte Gradle in der Lage sein, dies selbst zu handhaben und das Problem dauerhaft zu lösen . Dieser Problembericht gibt Hinweise zur Lösung: Gradle kann nicht mit dem Gradle-Dienst kommunizieren.

Sehen Sie sich Ihre lokale Netzwerk-Firewall an. In meinem Fall,

  • ausgehenden Verkehr von 127.0.0.1 bis 127.0.0.1 zulassen,

    sudo iptables -A OUTPUT -p udp -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    
  • Eingehenden Datenverkehr von 127.0.0.1 zulassen

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

löste das Problem. Eine Diskussion über ein ähnliches Problem bei Github .

Bitte verweisen Sie auf einen beliebigen Link, um meine Kenntnisse über das Gradle Build-System in Android zu verbessern.

Der udacity gradle Kurs , wenn Sie etwas Zeit haben.

serv-inc
quelle
0

Öffnen Sie das Terminal und wechseln Sie zum Projektpfad. Führen Sie dann je nach Betriebssystem Folgendes aus: gradlew clean oder ./gradlew clean

Abdo Driowya
quelle
0

Ich hatte das gleiche Problem. Aber ich habe es gelöst, indem ich mein Android-Studio neu gestartet habe. Ich verwende OneDrive, um mein Projekt zu speichern.

Vishal Shinde
quelle
0

Ich hatte das gleiche Problem und ich machte zwei Schritte und es wurde gelöst.

  1. Mein JDK wurde nicht auf einem Mac installiert (ich habe vergessen zu installieren). Ich habe es installiert.
  2. Ich habe alle Elemente aus dem Cache-Ordner in diesem Pfad /Users/icon_developer/.gradle/ gelöscht und das Projekt neu erstellt. Es funktionierte!
Intsab Haider
quelle
0

alle endlich habe ich komplette lösung

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
Android-Team
quelle
0

Ich könnte zu spät kommen, sehe aber nach einer schnellen und effizienten Lösung aus.

Führen Sie die folgenden Schritte aus.

  1. Ausführen ps -ef | grep gradle
  2. Öffnen Sie das Terminal und gehen Sie zum Pfad ~ / .gradle / caches
  3. Ausführen find ~/.gradle -type f -name "*.lock" | while read f; do rm $f; done

Es ist fertig.

Hiren Patel
quelle
0

Ich war zu sehr mit der gleichen Sache beschäftigt. Aber es wurde bald sortiert. Löschen Sie einfach die Datei:

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

Außerdem habe ich OpenJDK vom Task-Manager beendet. Idk es hat geholfen oder nicht, aber beide haben das Problem gelöst.

Gyanstark
quelle
0

In meinem Fall einfach das Android Studio geschlossen und wieder geöffnet, das Problem gelöst.

Emi Raz
quelle
0

So beheben Sie dieses Problem in Windows

  1. Gehe zum Task-Manager
  2. Finden Sie die Eigentümer-PID in "Details" des Task-Managers
  3. Beenden Sie die Aufgabe
Atul Dk
quelle
0

FileWählen Sie für mich auf einem Mac oben aus und wählen Sie dann Invalidate Caches / Restart...den Trick erledigt.

Eine schöne einfache Lösung, wenn es auch für Sie funktioniert!

Jim Tierney
quelle