Erreur: l'exécution a échoué pour la tâche «: app: nettoyer». Impossible de supprimer le fichier


166

J'essaie de reconstruire mon projet Android Studio Gradle (contenant principalement du code Kotlin), mais il a commencé à lancer un message UnableToDeleteFileExceptionpendant le processus de nettoyage / reconstruction:

Execution failed for task ':app:clean'.
> Unable to delete file: C:\Users\User\KotlinGameEngine\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.0.1\jars\classes.jar

Cela a commencé à se produire après avoir essayé de modifier la structure du package de mon projet. Malheureusement, je l'ai fait en renommant et en déplaçant les dossiers sources plutôt qu'en les refactorisant via Android Studio, ce qui était une mauvaise idée.

J'ai cherché une solution à ce problème toute la journée, et voici les choses que j'ai essayées en vain:

  • Faire une synchronisation Gradle;
  • Réinstaller Java JRE et Java SDK;
  • Réinstaller la dernière version d'Android Studio (1.4);
  • Revenir à la version précédente AS (1.3);
  • Invalidation du cache AS et redémarrage;
  • Suppression des répertoires gradleet .gradledans le répertoire du projet;
  • Suppression du .gradlerépertoire dans mon répertoire utilisateur;
  • Fonctionnement gradlew cleandepuis le terminal AS;
  • Copier manuellement les sources dans un nouveau projet (bizarre que cela persiste dans les projets ...)

Ce que j'ai essayé avec un peu de succès, mais laissez-moi seulement effectuer un nettoyage et une reconstruction supplémentaires avant que l'erreur ne se reproduise:

  • Fermer AS, supprimer manuellement les fichiers de construction et le rouvrir;
  • Tuer le java.exeprocessus pendant l'exécution d'AS (cela pourrait techniquement être fait à chaque fois, mais c'est fastidieux et ralentit le processus de construction)

Il semble donc que la compilation du processus Java puisse verrouiller les fichiers de construction pour une raison quelconque, mais cela pourrait aussi être quelque chose à voir avec Kotlin. J'ai un projet Java Android (plus mature) sur lequel je travaille, bien que je ne puisse pas reproduire cette erreur lors du nettoyage. Cela ne semble arriver qu'à mon projet Kotlin.

Mettre à jour:

J'ai constaté que le problème était causé par le plugin Kotlin Android. Le problème disparaît lorsque je supprime apply plugin: 'kotlin-android'du build.gradlefichier du module et revient lorsque je le réinsère. N'hésitez pas à donner un aperçu de cela.

Mise à jour 2:

La dernière mise à jour n'est pas la cause. J'ai trouvé que si un projet contient un fichier Kotlin, la reconstruction et le nettoyage échouent. Il continue à échouer, même si tous les fichiers Kotlin sont supprimés, jusqu'à ce que le processus Java d'arrière-plan soit tué, ce qui signifie qu'il a une sorte de verrou sur les fichiers de construction. J'ai soumis un bogue ici avec plus de détails et des étapes pour reproduire le bogue: KT-9440


3
invalider le cache et redémarrer le studio à partir du menu fichier.
Mohammad Tauqir

J'avais déjà essayé ça, mais je l'ai réessayé juste au cas où. Toujours pas de chance.
Bryony

Ce genre de problème me vient souvent à l'esprit. si la première option ne fonctionne pas, déconnectez-vous du système, puis démarrez le studio après vous être connecté.
Mohammad Tauqir

2
J'ai redémarré mon PC et le problème persiste. Merci quand même pour vôtre aide.
Bryony

Je l'ai résolu en supprimant le dossier de construction de l'Explorateur
Kishan Solanki

Réponses:


123

Si vous utilisez Android Studio 2.0 Beta, ce problème peut apparaître (plus probablement si vous travaillez sur un système de fichiers NTFS) et il semble que "Instant Run" soit le coupable. Recherchez «Instant Run» dans les paramètres et décochez la case.

J'ai déposé un problème sur le bug tracker.


J'utilise sshfs. Même problème ici. La désactivation de l'exécution instantanée fonctionne pour moi.
Chanson du

2
Oui, la désactivation de INSTANT RUN Studio 2.0 beta 7 a résolu cette exception
Yogesh Seralia

1
Mon Android Studio 2.0 était bloqué lors de l'actualisation d'un projet particulier. J'ai tout essayé et j'ai accidentellement suivi cette réponse et elle a été résolue par un problème différent de la question. J'ai été coincé pendant si longtemps. J'aurais aimé pouvoir vous voter plus de fois! Merci
Rachita Nanda

9
Cela a fonctionné pour moi. Au cas où cela aiderait quelqu'un: Pour désactiver Instant Run dans la version 2.1 d'Android Studio, c'est File -> Settings -> Build, Execution, Deployment -> Instant Run, puis décochez la première case "Enable Instant Run ...".
nickandross

1
J'utilise AS v2.1.3. Dans mon cas, la case "Instant Run" était déjà décochée, donc je l'ai cochée, je l'ai appliquée, nettoyé et reconstruit le projet (l'erreur était toujours là), puis l'ai décochée, l'ai appliquée, nettoyé et reconstruit le projet et l'erreur était parti.
jose le

114

J'ai tué tous les processus java TM dans le gestionnaire de tâches et cela m'a permis de reconstruire


29
+1. Le processus Zombie Java était le problème. Si vous êtes sur Win 10, ouvrez le Gestionnaire des tâches; recherchez le binaire Java (TM) Platform SE; Tâche finale.
Un étudiant Noob le

26
Vous pouvez utiliser gradle --stoppour arrêter les démons bloqués comme alternative.
Jayson Minard

1
Existe-t-il un moyen automatique de tuer les processus. Je perds tellement de temps à le tuer manuellement à chaque nettoyage.
AvatarQing

Dans mon cas, il y avait un Meld ouvert (outil de comparaison et de fusion) qui bloquait le dossier à nettoyer
Armando

dans mon cas, je n'ai pas trouvé Java TM alors j'ai redémarré les fenêtres
Dasser Basyouni

41

Essayez le fichier -> Invalidate Caches and Restart

Cela a fonctionné pour moi


Le "Invalidate cache and restart" rend le studio Android bloqué dans Windows 8 PC. J'utilise Android Studio 2.2.2. Je peux utiliser cette fonctionnalité du tout. Quelqu'un a une bonne solution pour cela ?.
Nithinjith

Fichier -> Invalidate Caches and Restart fonctionne mais prend tellement de temps que ce n'est pas OK. Le problème de base des dysfonctionnements des privilèges de fichier Win10 est réapparu pour ma mise à jour vers le SDK 27 (j'ai accepté le message de mise à jour). Et après la même mise à jour, l'AS pleure pour NDK 15 mais il n'y a qu'un NDK14 disponible, définissez build gradle compile SDK sur 26 et il ne pleure pas. On dirait que nous sommes entre deux générations ici ?? Dans Win10 x64, il y a également des problèmes avec les émulateurs qui ont besoin de données à effacer pour être réutilisées. Cela ressemble à beaucoup de détails à corriger?
Jan Bergström

30

Après avoir publié un rapport de bogue sur le traqueur de bogues Kotlin, j'ai été informé du problème 61300 sur le traqueur AOSP. Cela semble être la cause. Puisqu'il n'y a rien que je puisse faire pour le moment, je marquerai cette question comme réponse et je mettrai à jour la réponse si le bogue est corrigé.

En attendant, si vous utilisez Windows, je pense avoir trouvé une solution de contournement. Vous devrez télécharger LockHunter (à vos risques et périls bien sûr), puis ajouter ce qui suit au gradle.buildfichier de votre module , en remplaçant la lockhuntervariable par votre chemin vers LockHunter.exe:

task clean(type: Exec) {
    ext.lockhunter = '\"C:\\LockHunter.exe\"'
    def buildDir = file(new File("build"))
    commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir
}

Cela oblige LockHunter à déverrouiller et à supprimer de manière forcée et silencieuse les fichiers de construction lorsque l'application: nettoyer la tâche s'exécute.


J'ai résolu le problème propre avec cela mais je suis incapable de faire de même pour exécuter l'application. Toujours la même erreur. J'ai une idée; peut-être changer le clean avec autre chose?
codiac

Erreur: (21, 0) La déclaration d'une tâche de «nettoyage» personnalisée lors de l'utilisation des plug-ins de cycle de vie Gradle standard n'est pas autorisée.
Shashwat Gupta

26

Nettoyez le projet du terminal à l'aide de cette commande gradlew clean.

entrez la description de l'image ici


2
La saisie de la commande ci-dessus a lancé un téléchargement, une décompression et une installation, ce qui a pris un certain temps. Après cela, cette solution a fonctionné pour moi.
Dale

Cela a pris 11 minutes pour terminer, mais cela semble fonctionner: un point dans le temps en sauve neuf. Cela devrait être la réponse acceptée.
mwieczorek

Je suis sur ubuntu, j'ai couru le gradlew nettoyer comme indiqué ci-dessus mais n'a pas fonctionné .. :( .commande introuvable.
Abhijit Gujar

1
@AbhijitGujar Vous devriez ./gradlew cleanplutôt essayer Ubuntu. (Il exécutera l' gradlewexécutable à partir du répertoire du projet.)
TerraPass

7
./gradlew cleann'a pas résolu ce problème pour moi. Il a montré à nouveau la même erreur, c'est-à-dire "impossible de supprimer le répertoire"
abggcv

12

La suppression du répertoire intermediatesest une solution rapide au problème.

Le répertoire sera reconstruit lors de la reconstruction du projet.


1
J'ai essayé de supprimer le répertoire des intermédiaires, mais Windows me dit que je ne peux pas supprimer le répertoire. Bizarre.
tronman

Cela a fonctionné pour moi sur l'un des projets mais pas sur un autre :(
abggcv

7

J'étais confronté au même problème sur Android Studio 2.2 preview 1, la solution de @AndresSuarez était correcte mais pour certaines raisons, je n'ai pas pu trouver le processus JAVA TM dans mon gestionnaire de tâches. J'ai donc essayé la solution suivante et cela a fonctionné -

Ouvrez l' invite de commande et tapez TASKKILL /F /IM java.exe. Cela tuera automatiquement tous les processus JAVA TM. Maintenant, recompilez à nouveau l'application, cela fonctionnera.

En outre, vous pouvez créer un fichier .bat , y ajouter le code ci-dessus et l'exécuter chaque fois que vous rencontrez le problème.


5

J'ai eu ce problème dans Android Studio 2.3.

J'ai simplement redémarré Android Studio et après cela, j'ai pu nettoyer sans me plaindre.


5

J'ai résolu avec la commande:

taskkill /F /IM java.exe

puis:

gradle assembleDebug 

5

Pour moi, cela s'est produit à cause d'un processus de débogage actif . Donc, avant de nettoyer ou de reconstruire, assurez-vous de tuer tous les processus actifs. Pour clouer le succès, exécutez Invalidate Caches / Restart .


4

J'ai eu le même problème et cela a fonctionné pour moi:

  1. fermez Android Studio.
  2. supprimer le répertoire des intermédiaires (tant qu'Android Studio est ouvert, ce répertoire ne peut pas être supprimé)
  3. ouvrez à nouveau Android Studio

3

J'ai résolu celui-ci dans mon ubuntu comme ça.

  1. Vérifiez les processus en cours d'exécution dans votre système (Ubuntu) comme dans le gestionnaire de tâches de Windows.

    Commande du terminal Ubuntu pour lister tous les processus en cours d'exécution ----> "gnome-system-monitor"

  2. Terminez ou terminez les processus JAVA et ANDROID de la liste.

  3. Redémarrez le studio et importez le projet.

Cela fonctionne pour moi sans aucun problème. J'espère que cela t'aides...

Je pensais que c'était le problème avec le processus déjà créé et dupliqué.


3

Pour moi, cela aide lorsque je Exit Android Studioclique une fois de plus Clean Project(il apparaît la même erreur) et le prochain clic Make Project- après bien sûr le Run 'app'bouton dans Android Studio.


3

Trouvez des programmes qui ont utilisé app / build / sorties / apk dossier , puis supprimez simplement le dossier.

Je pense qu'Android Studio doit supprimer l'ancien dossier apk avant de reconstruire.


3

Parfois, les intermédiaires créent un problème, supprimez-le et reconstruisez le projet

OU

exécutez simplement la commande cmd -> gradlew clean

dans votre dossier de projet dans l'espace de travail (son travail pour moi)


2

La solution est assez simple.

C'est l'une des solutions qui a fonctionné pour moi.

Il est possible que le dossier app / build / sorties / apk de votre projet soit ouvert.

alors fermez simplement ce dossier et reconstruisez votre projet. et il sera résolu.


oui j'avais ce problème, il y avait un fichier de rapport qui est enregistré dans build / report / checkstyle.html, la fermeture de ce fichier a résolu mon problème, merci
tamtom


2

Pour moi, le coupable est adb tient le fichier apk puisque je l'utilise pour installer et démarrer l'application sur mon appareil physique via la ligne de commande.

Donc simplement:

Gestionnaire de tâches> Terminer le processus adb.exe

Et puis le fichier est libre d'être supprimé et le projet peut être nettoyé


2

réagir aux développeurs natifs

courir

sudo cd android && ./gradlew clean

et si vous voulez libérer apk

sudo cd android && ./gradlew assembleRelease

J'espère que cela aidera quelqu'un


1

Si vous testez avec un backend local (servlet java sur le moteur d'application Google local), le processus en cours d'exécution bloque certains fichiers. Vous n'êtes donc pas en mesure de déployer en direct. Donc, dans ce cas, vous pouvez résoudre ce problème en arrêtant le backend local avant de démarrer clean ou build. Vous trouvez l'option sous "Exécuter -> Arrêter le backend".


1

Dans Android Studio 3.0, j'ai eu le même problème. Cela l'a corrigé:

  1. Fermer Studio
  2. Supprimer projectRoot / build / et projectRoot / app / build /
  3. Redémarrez Studio

1

J'ai eu le même problème après avoir déplacé mon projet de D: vers G: lecteur mais la vérification du disque a résolu mon problème

J'ai utilisé chkdsk / f / r / x G: ** ici, certains commutateurs de ligne de commande ont été utilisés: **

/ F Corrige les erreurs sur le disque

/ R Localise les secteurs défectueux et récupère les informations lisibles (implique / F)

/ X Force le volume à se démonter en premier si nécessaire (implique / F) (important)

Remarque: / X est important car il démontera le lecteur et vous pouvez supprimer manuellement le répertoire de construction de votre projet,

reconstruisez maintenant le projet


Cela a fonctionné. Je vous remercie! :) Mais cela a pris près de 5 heures. le temps de terminer.
Rohit Sharma

1

Je viens de résoudre ce problème pour moi-même.

Le problème était que quelqu'un d'autre avait créé le fichier, donc même si j'ai des droits d'administrateur sur l'ordinateur, je n'ai pas pu apporter de modifications au fichier ou aux fichiers. Vous devez accéder aux propriétés du fichier ou du dossier et modifier la propriété ou ajouter la propriété. Cette page Web explique bien étape par étape ce que vous devez faire.

Une fois que j'ai fait ce qui précède, j'ai trouvé le fichier dans l'explorateur de fichiers et je l'ai extrait manuellement. Je ne pense pas que ce soit nécessaire dans le projet de studio Android s'il essayait de le supprimer de toute façon.


1

Une autre application qui peut utiliser les ressources est apparemment Kotlin REPL d'Android Studio. J'ai fermé ça, puis je pourrais reconstruire sans problème.



0

Ce problème m'est apparu dans le canal stable Android Studio 2.0 et la solution était due à un problème survenu lors de la mise à jour de mon studio Android.J'ai résolu ce problème en installant un nouveau studio Android. après avoir supprimé tous les anciens fichiers de l'ancienne installation. et pour garder la très belle fonctionnalité d'Instant Run


0

si vous rencontrez toujours des problèmes, effectuez la mise à jour vers la dernière version d'Android Studio (sa version 2.1 à partir de maintenant), il peut s'agir d'un bogue avec une ancienne version d'Android Studio. C'est résolu pour moi maintenant.


Se produisant dans la version 2.2 de l'aperçu 1 pour moi, je ne pense donc pas que ce soit corrigé.
Rohan Kandwal

0

Le nettoyage du projet dans le studio Android et la réexécution ont résolu le problème. Peut-être aussi faire "Make Project".


0

J'ai eu le même problème et je l'ai résolu en déplaçant le dossier du projet dans la partition ext4


Oui, j'ai lu ailleurs que le système Android Studio / gradle / React Native / packager / watchman a des problèmes (pour une raison quelconque) sur les systèmes de fichiers NTFS.
Venryx

0

J'ai eu la même erreur, j'ai essayé plusieurs façons, mais la solution a fonctionné pour moi était de supprimer les dossiers de construction des répertoires / android et / android / app.

courir a react-native run-androidfonctionné pour moi.

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.