web-dev-qa-db-fra.com

Erreur: L'exécution a échoué pour la tâche ': app: clean'. Impossible de supprimer le fichier

J'essaie de reconstruire mon projet Android Studio Gradle (contenant principalement du code Kotlin), mais il a commencé à lancer une UnableToDeleteFileException pendant 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é après que j'ai essayé de changer la structure de paquet de mon projet. Malheureusement, je l'ai fait en renommant et en déplaçant les dossiers source plutôt qu'en le refacturant via Android Studio, ce qui était une mauvaise idée.

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

  • Faire une synchronisation de Gradle;
  • Réinstallation de Java JRE et Java SDK;
  • Réinstallation de la dernière version d'Android Studio (1.4);
  • Revenir à la version AS précédente (1.3);
  • Invalidation du cache AS et redémarrage;
  • Suppression des répertoires gradle et .gradle dans le répertoire du projet;
  • Suppression du répertoire .gradle dans mon répertoire utilisateur;
  • Exécuter gradlew clean à partir du terminal AS;
  • Copier manuellement les sources sur un nouveau projet (bizarre que cela persiste d'une manière ou d'une autre à travers les projets ...)

Les choses que j'ai essayées avec un peu de succès, mais ne me permettent que d'en effectuer une nouvelle et de la reconstruire avant que l'erreur ne se reproduise:

  • Fermer AS, supprimer manuellement les fichiers de construction et les rouvrir;
  • Tuer le processus Java.exe pendant qu'AS est en cours d'exécution (techniquement, cela peut ê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 concerner 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.

Des idées?

Merci d'avance.

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 fichier build.gradle du module et revient lorsque je le réinsère. N'hésitez pas à offrir un aperçu de cela.

Mise à jour 2:

La dernière mise à jour n'est pas la cause. J'ai constaté 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 en arrière-plan soit tué, ce qui signifie qu'il dispose d'un verrou pour les fichiers de construction. J'ai soumis un bogue ici avec plus de détails et d'étapes pour reproduire le bogue: KT-9440

131
Bryony

Après avoir posté un rapport de bogue sur le traqueur de bogues Kotlin, j'ai été informé de Issue 61300 sur le traqueur AOSP. Cela semble être la cause. Étant donné que je ne peux rien faire pour le moment, je marquerai cette question comme ayant reçu une réponse et la mettrai à jour 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 dans le fichier gradle.build de votre module, en remplaçant la variable lockhunter par votre chemin d'accès à LockHunter.exe:

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

Cela force LockHunter à déverrouiller et à supprimer de manière forcée et silencieuse les fichiers de construction lors de l'exécution de la tâche app: clean.

25
Bryony

Si vous utilisez la version bêta d'Android Studio 2.0, ce problème peut apparaître (plus probablement si vous travaillez sur un système de fichiers NTFS) et il semble que "l'exécution instantanée" en soit la cause. Recherchez "Instant Run" dans les paramètres et décochez la case.

J'ai déposé un problème sur le gestionnaire de bogues.

113
Irfan

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

94
Andres Suarez

Essayez Fichier -> Invalider les caches et redémarrer

Cela a fonctionné pour moi

27
Cloy

Nettoyer le projet du terminal en utilisant cette commande 'gradlew clean'.

 enter image description here

19

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

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

12
DeaMon1

J'étais confronté au même problème sur l'aperçu 1 d'Android Studio 2.2. La solution de @AndresSuarez était correcte, mais pour certaines raisons, je n'ai pas trouvé de processus Java TM dans mon gestionnaire de tâches. J'ai donc essayé la solution suivante et cela a fonctionné -

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

De plus, 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.

4
Rohan Kandwal

Pour moi, cela est dû à un processus de débogage actif . Donc, avant de nettoyer ou de reconstruire, assurez-vous de tuer tous les processus actifs. Pour réussir, exécutez Invalidate Cashes/Restart .

3
Dmitry Smolyaninov

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

OR

il suffit d’exécuter la commande cmd -> gradlew clean

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

3
Chetan Joshi

Trouvez les programmes qui ont utilisé app/build/output/apk dossier, puis supprimez simplement le dossier 

Je pense que Android Studio doit supprimer l’ancien dossier apk avant de reconstruire.

3
Mete

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

3
y07k2

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

3
Johan Lund

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

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

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

  2. Terminez ou terminez les processus Java et Android de la liste.

  3. Encore une fois dé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 qui est déjà créé et dupliqué.

2
HariPrasad

La solution est assez simple.

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

Il se peut que votre app/build/sorties/apk .__ de votre projet. dossier est ouvert.

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

2
Mehul

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

  1. fermer Android Studio.
  2. supprimer le répertoire intermédiaire (tant que Android Studio est ouvert, ce répertoire ne peut pas être supprimé)
  3. ouvrez à nouveau Android Studio 
2
M. Chavoshi

Comme suggéré dans le rapport de bug , décommenter la ligne

idea.jars.nocopy=false

dans le fichier idea.properties a résolu le problème pour moi.

Notez que cela doit être fait à chaque fois que Android Studio est mis à jour.

2
Jose Gómez

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

exécuter react-native run-Android a fonctionné pour moi.

1
Eltaf

Pour moi, le coupable est adb qui conserve le fichier apk puisque je l’utilise pour installer et lancer l’application sur mon périphérique physique en ligne de commande.

Alors tout simplement:

Gestionnaire des tâches> Fin du processus adb.exe

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

1
benallansmith

J'ai résolu avec la commande:

taskkill /F /IM Java.exe

et alors:

gradle assembleDebug 
1
Rick

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

Le problème était que quelqu'un d'autre avait créé le fichier. Même si j'avais des droits d'administrateur sur l'ordinateur, je ne pouvais pas modifier le fichier ou les fichiers. Vous devez aller dans les propriétés du fichier ou du dossier et changer la propriété ou en ajouter. 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 l'ai extrait manuellement. Je ne pense pas que cela soit nécessaire dans le projet de studio Android s'il essayait malgré tout de le supprimer.

1
Adam Higgins

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

1
Tino

Nettoyer le projet dans Android studio et le relancer a corrigé le problème. Peut-être faire "Make Project" aussi.

0
sofs1

solution simple: 

dans Android ou tout produit Jetbrains lorsque vous cliquez dessus, vous trouverez le message 'invalider le cache et redémarrer', et tous les problèmes seront résolus

0
Farouk Benarous

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

0
Ahmed Esameddeen

J'ai eu le même problème après avoir déplacé mon projet de D: à 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 à descendre en premier si nécessaire (implique/F) (important)

Remarque:/X est important car il démontera le lecteur et vous pourrez supprimer manuellement le répertoire build de votre projet.

maintenant reconstruire le projet

0

Dans mon cas, node.js utilisait des ressources dans le dossier de construction (mon application dans reactnative). Alors j'ai tué node.js et ça a résolu.

0
RAM

Je l'ai résolu en recherchant globalement le répertoire manquant dans le projet. puis supprimez tous les fichiers contenant ce mot clé. il peut nettoyer avec succès après avoir supprimé tous les répertoires build et .externalNativeBuild manuellement.

0
wdanxna

J'utilise Android Studio 3.0 Bêta 7. Nettoyer le projet, Invalider les caches, redémarrer le studio ne fonctionnait pas, mais le fait de mettre à jour la version de Kotlin vers la version 1.1.51 et de redémarrer le studio a résolu ce problème.

0
adithya reddy

si vous rencontrez toujours des problèmes, mettez-vous à jour avec la dernière version d'Android Studio (sa version 2.1 dès maintenant). Il pourrait s'agir d'un bogue avec l'ancienne version d'Android Studio. C'est résolu pour moi maintenant.

0
Ishant Sagar

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

  1. Studio fermé
  2. Supprimer projectRoot/build/et projectRoot/app/build /
  3. Redémarrer Studio
0
Joseph Bani

Ma solution pour cela était très simple (si vous utilisez Windows) 1- Fermez Android Studio

0
Atef Farouk

la chose qui a fonctionné pour moi a été de fermer le code de Visual Studio et de l'ouvrir à nouveau ... Je suppose que le dossier apk était ouvert quelque part dans le code .... donc essayez-le également.

0
MSD

Ce problème m'est apparu sur le canal stable d'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é de Instant Run 

0
Mohamed