Il est actuellement utilisé par une autre instance Gradle

108

Je suis nouveau sur le système de construction Gradle. Je veux faire quelques fonctions de base dessus. Je l'exécute / le construit en ligne de commande. Je fais référence au guide de l'utilisateur . Et faire quelques tâches simples.

Lorsque je commence à exécuter des tâches simples, la construction a réussi. Mais, après quelques temps, il se montre "It is currently in use by another Gradle instance"et devient BUILD FAILED. J'utilise un terminal pour exécuter la tâche. Je n'ai rien couru à ce moment-là.

Si je fermais le terminal qui génère l'erreur, ce problème serait résolu. Mais, je sais que ce n'est pas la solution pour cela.

Pourquoi cette erreur arrive-t-elle fréquemment?

Comment le résoudre?

Et, s'il vous plaît se référer à n'importe quel lien pour améliorer mes connaissances sur le système Gradle Build sous Android.

Dhasneem
la source
4
Utilisez-vous gradle en mode démon par hasard? Vous pouvez vérifier en exécutant la commande gradle --stop. Vous vous attendez à obtenir la sortie Aucun démon Gradle n'est en cours d'exécution ou le démon Gradle arrêté .
jusqu'au
@topr Je n'ai pas utilisé le mode démon ..
Dhasneem
3
Solution: (Cela a fonctionné pour moi) Étape 1. Démarrez le gestionnaire de tâches rechercher / vérifier qu'il n'y a PAS DEUX instances de java.exe en cours d'exécution. Étape 2. Tuez simplement un java.exe ou les deux et redémarrez Android Studio. Enjoy
Lakhwinder Singh Dhillon

Réponses:

286

Supprimez les fichiers de verrouillage dans le cache gradle en exécutant quelque chose comme ceci:

find ~/.gradle -type f -name "*.lock" -delete
Le directeur de nuit
la source
12
Merci! Cela a fonctionné après avoir couru en plus find /path-to-project-dir/.gradle -type f -name "*.lock" | while read f; do rm $f; done
Tyler
4
Aujourd'hui j'étais de retour à cette question, et cette fois j'avais besoin d' kill -9un processus, en plus de supprimer les fichiers de verrouillage. Le message dans le titre de la question était immédiatement suivi du PID: Qu'est
Joshua Goldberg
@JoshuaGoldberg Avez-vous vérifié comment et quand le processus # 4354 a été lancé avant de le tuer? (Je suis juste curieux.)
Le responsable de nuit
2
Merci d'avoir partagé cette commande, je n'avais jamais eu ce problème avant et après avoir supprimé les fichiers de verrouillage pour gradle, j'ai pu à nouveau exécuter mon serveur. Cela devrait être marqué comme "Meilleure réponse"
Raul Rivero
1
@ shashank-chandak dans un bash shell (Terminal ou Cygwin)
Le gestionnaire de nuit
31

Parfois, la manière rapide vient dans une affaire non élégante, nous y voilà:

Trouvez d'abord le # de tous les processus de gradle en cours d'exécution

ps -A | grep gradle

Après cela, récupérez les identifiants, tuez-les tous un par un

sudo kill -9 <process ID>

Maintenant tu es bon ;-)

PYK
la source
29

J'étais coincé avec cette erreur et j'ai dû souffler le contenu du .gradle/caches/dossier de mon utilisateur et le contenu du .gradle/dossier de mon projet pour recommencer.

Vous ne savez pas ce qui l'a causé, peut-être un échec de construction qui a gardé ces fichiers dans un état verrouillé?

Ross Hambrick
la source
Ce problème est noté ici - issues.gradle.org/browse/GRADLE-2795 - Bien que le bogue gradle existe, je pense que c'est la meilleure solution.
Joshua Goldberg
3
En fait, j'ai réussi à supprimer ~ / .gradle / caches / * sans toucher au répertoire .gradle du projet.
Joshua Goldberg
Heureusement pour vous @JoshuaGoldberg, mais dans mon cas, je ne peux même pas supprimer le dossier chaches. quel pourrait être le problème?
large du
J'avais supprimé .gradle / caches / ** et cela fonctionne à nouveau. Chose étrange, je n'utilise que le ./gradlew qui ne devrait pas utiliser la version locale de gradle, n'est-ce pas?
Ben Groot
1
@BenGroot AFAIK tous les démons gradle avec la même version gradle partagent le même cache (sinon explicitement forcé), peu importe d'où ils ont été lancés.
ubuntudroid
10

Pour la machine Windows:

Ouvrez le Gestionnaire des tâches (Ctrl-Alt-Suppr et vérifiez le processus)

-> Si vous exécutez deux instances d'Android Studio, fermez-en une (fin de tâche)

-> Puis fermez OpenJDK Platform Binary

-> Synchronisation Gradle maintenant sur AndroidStudio et cela fonctionnera maintenant

Yog
la source
7

Cela peut se produire car il existe plusieurs instances d'Android Studio.

Justin
la source
D'accord, l'ouverture d'un studio Android multi-fenêtres et la synchronisation simultanée ont également causé ce problème
mochadwi
5

Il suffit de tuer le processus java.exe pour résoudre mon problème.

-- Éditer --

si non fixé alors:

  • tuer le processus OpenJdkPlatform.

si non fixé alors:

  • supprimez tous les fichiers ".lock" du répertoire .gradle et des sous-répertoires (fenêtres: C: \ Users \ Username \ .gradle).

si non fixé alors:

  • renommez ou supprimez le répertoire .gradle et réessayez.
Ahmad Dehnavi
la source
Après avoir lu votre réponse, j'ai supprimé le répertoire .gradle et maintenant, après la recompilation, l'application est complètement cassée.
red-devil
Après avoir lu votre réponse, j'ai supprimé le répertoire .gradle et maintenant, après la recompilation, l'application est complètement cassée. Les tailles de police ont augmenté, le remplissage a augmenté, obtenant des erreurs de validation aléatoires. Que puis-je faire maintenant?
red-devil
1
Êtes-vous sûr de simplement supprimer le répertoire .gradle? remove .gradle must n'a aucun effet secondaire sur le code de votre application. il s'agit simplement de graduer le cache et si vous compilez à nouveau votre application. gradle téléchargera les fichiers nécessaires. essayez une construction propre.
Ahmad Dehnavi
3

Ce message d'échec Gradle est généralement suivi des ID de processus pertinents, il serait donc

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

Pour déverrouiller, tuez simplement le processus propriétaire:

sudo kill -9 1234
saschoar
la source
2

Pour le système d'exploitation Windows:

J'ai pensé que cela avait quelque chose à voir avec un fichier de verrouillage, alors je suis simplement allé à .gradle \ buildOutputCleanup dans le dossier du projet et j'ai supprimé le fichier cache.properties.lock et reconstruit le projet. Cela fonctionnait parfaitement.

Kayleb
la source
2

appuyez CTRL + SHIFT + ESCpour ouvrir le gestionnaire de tâches maintenant trouvez OpenJDKet tuez-le aller là où l'erreur pointe comme

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

supprimez le fichier et resynchronisez et vous êtes prêt à partir.

Steve Moretz
la source
1

J'ai eu le même problème sur mac:

veillez à ce que votre projet ne soit PAS sur un disque dur externe. L'emplacement de votre projet doit être sur le disque dur avec votre système d'exploitation.

(Créer une application Ionic)

Sean Stayns
la source
Il semble que dans mon cas, le problème soit aussi celui-ci. L'autre jour, j'ai transféré le projet sur un disque externe.
DmitryKanunnikoff
1

Ayant le même problème sur un Mac, rien de ce qui précède n'a fonctionné pour moi. Ce qui fonctionnait, cependant, était d'ouvrir le moniteur d'activité et de fermer un processus Java en cours d'exécution. J'ai également remarqué qu'un fichier .hprof a été généré, que j'ai supprimé. Après cela, j'ai dirigé mon projet et cela a fonctionné.

George Ampartzidis
la source
1

Je pourrais être en retard mais ressembler à une solution rapide et efficace.

Exécutez les étapes suivantes.

  1. Exécuter ps -ef | grep gradle
  2. Ouvrez le terminal et accédez au chemin ~ / .gradle / caches
  3. Exécuter find ~/.gradle -type f -name "*.lock" | while read f; do rm $f; done

C'est fait.

Hiren Patel
la source
1

J'étais confronté au même problème dans mon projet mais j'ai résolu ce problème en invalidant le projet, alors suivez ces étapes dans Android Studio File -> Invalidate Caches / Restart ...

Vikas Kumar Singh
la source
0

Il n'était pas nécessaire pour moi de supprimer des fichiers pour corriger cette erreur.

Le problème que j'ai eu est que les instances Gradle se sont bloquées et qu'il y avait 6 entrées d'invite de commande dans ma liste de tâches qui ont été générées par Java.

Forcer la fermeture des instances d'invite de commande m'a permis de continuer à travailler comme d'habitude.

Knossos
la source
0

Son travail pour moi pour le problème: -

"Erreur: Délai d'attente pour verrouiller les bocaux. Il est actuellement utilisé par une autre instance Gradle. PID du propriétaire: 6896 Notre PID: 5048 Opération du propriétaire: Notre opération: Verrouiller"

Solution:-

  1. fermez Android Studio et ouvrez le gestionnaire de tâches et terminez le processus java.exe
  2. ouvrez le derectory .... gradle \ caches.
  3. Supprimez le fichier jar2.lock.
  4. Ouvrez Android Studion et nettoyez le projet.
user3552453
la source
0

J'ai essayé toutes ces réponses, y compris tuer le processus java, supprimer .gradle dans HOME_DIR et dans le répertoire du projet, redémarré Android Studio et même redémarré le système d'exploitation.

Cela n'a commencé à fonctionner normalement qu'après avoir lancé la synchronisation de gradle.

B-GangsteR
la source
0

Solution très simple:

pas besoin de tuer Android Studio, il suffit de tuer le OpenJdkPlatformprocessus, puis de supprimer le .lockfichier situé dans:

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

Tout en tuant le processus et / ou en supprimant le fichier de verrouillage, Gradle devrait être capable de gérer cela seul, résolvant le problème de manière permanente . Ce rapport de problème indique la solution: Gradle ne peut pas communiquer avec le service gradle.

Jetez un œil à votre pare-feu de réseau local. Dans mon cas,

  • autoriser le trafic sortant de 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
    
  • autoriser le trafic entrant à partir de 127.0.0.1

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

résolu le problème. Une discussion d'un problème similaire sur github .

Et, s'il vous plaît se référer à n'importe quel lien pour améliorer mes connaissances sur le système Gradle Build sous Android.

Le cours udacity gradle , si vous avez du temps.

serv-inc
la source
0

ouvrir le terminal et passer au chemin du projet puis exécuter en fonction du système d'exploitation: gradlew clean ou ./gradlew clean

Abdo Driowya
la source
0

J'étais confronté au même problème. Mais je l'ai résolu en redémarrant simplement mon studio Android. J'utilise OneDrive pour enregistrer mon projet.

Vishal Shinde
la source
0

J'ai eu le même problème et j'ai fait deux étapes et il est devenu résolu.

  1. Mon JDK n'a pas été installé sur Mac (j'ai oublié de l'installer) je l'ai installé.
  2. J'ai supprimé tous les éléments du dossier caches situé dans ce chemin /Users/icon_developer/.gradle/ et reconstruit le projet. Ça a marché!
Intsab Haider
la source
0

tout le monde enfin, j'ai une solution complète

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
Équipe Android
la source
0

J'étais trop coincé avec la même chose. Mais il a été réglé bientôt. Supprimez simplement le fichier:

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

aussi, j'ai arrêté OpenJDK du gestionnaire de tâches. Je pense que cela a aidé ou non, mais les deux ont résolu le problème.

Gyanstark
la source
0

Dans mon cas, vient de fermer Android Studio et de le rouvrir, le problème est résolu.

Emi Raz
la source
0

Pour résoudre ce problème dans Windows

  1. Aller au gestionnaire de tâches
  2. Trouvez le PID propriétaire dans les "détails" du gestionnaire de tâches
  3. Terminer la tâche
Atul Dk
la source
0

Pour moi, sur un Mac, sélectionnez Fileen haut, puis choisissezInvalidate Caches / Restart... done the trick.

Une belle solution simple si cela fonctionne pour vous aussi!

Jim Tierney
la source