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.


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

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 ;-)


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é?


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


7

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


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.

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

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.


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.


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)


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


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.


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


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.


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.

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.


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

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.


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


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.


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é!

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

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.


0

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


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

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!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.