Fehler: Ausführung für Aufgabe ': app: clean' fehlgeschlagen. Datei kann nicht gelöscht werden

166

Ich versuche, mein Android Studio Gradle-Projekt (das hauptsächlich Kotlin-Code enthält) neu zu erstellen, aber es hat UnableToDeleteFileExceptionwährend des Reinigungs- / Wiederherstellungsprozesses Folgendes ausgelöst:

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

Dies begann, nachdem ich versucht hatte, die Paketstruktur meines Projekts zu ändern. Leider habe ich die Quellordner umbenannt und verschoben, anstatt sie über Android Studio umzugestalten, was eine schlechte Idee war.

Ich habe den ganzen Tag nach einer Lösung für dieses Problem gesucht, und dies sind die Dinge, die ich erfolglos versucht habe:

  • Gradle-Synchronisierung durchführen;
  • Neuinstallation von Java JRE und Java SDK;
  • Neuinstallation der neuesten Version von Android Studio (1.4);
  • Zurücksetzen auf die vorherige AS-Version (1.3);
  • Ungültigmachen des AS-Cache und Neustart;
  • Löschen der Verzeichnisse gradleund .gradleim Projektverzeichnis;
  • Löschen des .gradleVerzeichnisses in meinem Benutzerverzeichnis;
  • Laufen gradlew cleanvom AS-Terminal;
  • Manuelles Kopieren der Quellen in ein neues Projekt (seltsam, dass es irgendwie projektübergreifend bestehen bleibt ...)

Dinge, die ich mit ein wenig Erfolg versucht habe, aber nur noch einmal bereinigen und neu erstellen lassen, bevor der Fehler erneut auftritt:

  • Schließen von AS, manuelles Löschen der Build-Dateien und erneutes Öffnen;
  • Beenden des java.exeProzesses, während AS ausgeführt wird (dies könnte technisch jedes Mal durchgeführt werden, ist jedoch langwierig und verlangsamt den Erstellungsprozess)

Es scheint also, dass das Kompilieren des Java-Prozesses die Build-Dateien aus irgendeinem Grund sperrt, aber möglicherweise auch mit Kotlin zu tun hat. Ich habe ein (ausgereifteres) Java-Android-Projekt, an dem ich arbeite, obwohl ich diesen Fehler beim Bereinigen nicht reproduzieren kann. Es scheint nur meinem Kotlin-Projekt zu passieren.

Aktualisieren:

Ich habe festgestellt, dass das Problem durch das Kotlin Android-Plugin verursacht wird. Das Problem verschwindet, wenn ich es apply plugin: 'kotlin-android'aus der Moduldatei entferne, build.gradleund tritt wieder auf, wenn ich es erneut einfüge. Fühlen Sie sich frei, einen Einblick in diese zu geben.

Update 2:

Das letzte Update ist nicht die Ursache. Ich habe festgestellt, dass die Neuerstellung und Bereinigung fehlschlägt, wenn ein Projekt eine Kotlin-Datei enthält. Es schlägt weiterhin fehl, selbst wenn alle Kotlin-Dateien entfernt wurden, bis der Hintergrund-Java-Prozess beendet wird, was bedeutet, dass die Build-Dateien gesperrt sind. Ich habe hier einen Fehler mit weiteren Details und Schritten zur Reproduktion des Fehlers eingereicht: KT-9440

Bryony
quelle
3
Cache ungültig machen und Studio über das Dateimenü neu starten.
Mohammad Tauqir
Ich hatte das schon versucht, aber ich habe es für alle Fälle noch einmal versucht. Trotzdem kein Glück.
Bryony
Diese Art von Problem fällt mir oft ein. Wenn die erste Option nicht funktioniert hat, melden Sie sich vom System ab und starten Sie das Studio nach dem Anmelden.
Mohammad Tauqir
2
Mein PC wurde neu gestartet und das Problem besteht weiterhin. Vielen Dank für Ihre Hilfe.
Bryony

Antworten:

123

Wenn Sie Android Studio 2.0 Beta verwenden, tritt dieses Problem möglicherweise auf (wahrscheinlicher, wenn Sie am NTFS-Dateisystem arbeiten), und es scheint, dass der "Sofortlauf" der Schuldige ist. Suchen Sie in den Einstellungen nach "Instant Run" und deaktivieren Sie das Kontrollkästchen.

Ich habe ein Problem im Bug-Tracker eingereicht .

Irfan
quelle
Ich benutze sshfs. Gleiches Problem hier. Das Deaktivieren des Sofortlaufs funktioniert bei mir.
Lied
2
Ja, die Deaktivierung von INSTANT RUN Studio 2.0 Beta 7 hat diese Ausnahme behoben
Yogesh Seralia
1
Mein Android Studio 2.0 konnte ein bestimmtes Projekt nicht aktualisieren. Ich habe alles versucht und bin versehentlich dieser Antwort gefolgt und sie wurde durch ein Problem gelöst, das sich von der Frage unterschied. Ich war so lange festgefahren. Ich wünschte, ich könnte dich öfter bewerten! Vielen Dank
Rachita Nanda
9
Das hat bei mir funktioniert. Falls es jemandem hilft: So deaktivieren Sie die Sofortausführung in Version 2.1 von Android Studio: Datei -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Sofortige Ausführung und deaktivieren Sie das erste Kontrollkästchen "Sofortige Ausführung aktivieren ...".
Nickandross
1
Ich verwende AS v2.1.3. In meinem Fall war das Kontrollkästchen "Sofortausführung" bereits deaktiviert, daher habe ich es aktiviert, angewendet, das Projekt bereinigt und neu erstellt (der Fehler war noch vorhanden) und dann deaktiviert, angewendet, das Projekt bereinigt und neu erstellt und den Fehler war weg.
Jose
114

Ich habe alle Java TM -Prozesse im Task-Manager beendet und konnte sie neu erstellen

Andres Suarez
quelle
29
+1. Zombie Java-Prozess war das Problem. Wenn Sie mit Win 10 arbeiten, öffnen Sie den Task-Manager. Suchen Sie nach Java (TM) Platform SE-Binärdateien. Task beenden.
Einige Noob Student
25
Sie können verwenden gradle --stopalle stecken Daemons als Alternative zu stoppen.
Jayson Minard
1
Gibt es eine automatische Möglichkeit, die Prozesse abzubrechen? Ich verschwende so viel Zeit, indem ich es bei jeder Reinigung manuell töte.
AvatarQing
In meinem Fall gab es eine offene Meldung (Vergleichs- und Zusammenführungstool), die den Ordner zum Reinigen sperrte
Armando
In meinem Fall habe ich Java TM nicht gefunden, also habe ich die Fenster neu gestartet
Dasser Basyouni
41

Versuchen Sie Datei -> Caches ungültig machen und neu starten

Das hat bei mir funktioniert

Cloy
quelle
Der "Cache und Neustart ungültig machen" lässt Android Studio in Windows 8 PC stecken. Ich benutze Android Studio 2.2.2. Ich kann diese Funktion überhaupt verwenden. Hat jemand eine richtige Lösung dafür?.
Nithinjith
Datei -> Caches ungültig machen und neu starten funktioniert, dauert aber so lange, dass es nicht in Ordnung ist. Das Grundproblem der Fehlfunktionen der Win10-Dateiberechtigungen trat erneut auf, als ich auf SDK 27 aktualisierte (ich habe die Aktualisierungsnachricht akzeptiert). Und nach dem gleichen Update schreit der AS nach NDK 15, aber es ist nur ein NDK14 verfügbar. Setzen Sie das Build Gradle Compile SDK auf 26 und es weint nicht. Sehen Sie aus, als wären wir hier zwischen zwei Generationen? In Win10 x64 gibt es auch Probleme mit den Emulatoren, bei denen Daten gelöscht werden müssen, um wiederverwendet zu werden. Klingt nach einer Menge Details, die behoben werden müssen?
Jan Bergström
30

Nachdem ich einen Fehlerbericht an den Kotlin-Fehler-Tracker gesendet hatte , wurde ich über das Problem 61300 auf dem AOSP-Tracker informiert. Das scheint die Ursache zu sein. Da ich momentan nichts tun kann, werde ich diese Frage als beantwortet markieren und die Antwort aktualisieren, wenn der Fehler behoben ist.

Wenn Sie Windows verwenden, habe ich in der Zwischenzeit eine Problemumgehung gefunden. Sie müssen LockHunter herunterladen ( natürlich auf eigenes Risiko), dann Folgendes zur gradle.buildDatei Ihres Moduls hinzufügen und die lockhunterVariable durch Ihren Pfad zu LockHunter.exe ersetzen:

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

Dies führt dazu, dass LockHunter die Build-Dateien zwangsweise und stillschweigend entsperrt und löscht, wenn die Aufgabe app: clean ausgeführt wird.

Bryony
quelle
Ich habe das saubere Problem damit gelöst, konnte aber nicht dasselbe für die Ausführung der App tun. Immer noch den gleichen Fehler bekommen. Hast du eine Idee; Vielleicht die Reinigung mit etwas anderem ändern?
Codiac
Fehler: (21, 0) Das Deklarieren einer benutzerdefinierten "sauberen" Aufgabe bei Verwendung der Standard-Gradle-Lebenszyklus-Plugins ist nicht zulässig.
Shashwat Gupta
26

Bereinigen Sie das Projekt mit diesem Befehl vom Terminal gradlew clean.

Geben Sie hier die Bildbeschreibung ein

Biswajit Karmakar
quelle
2
Durch Eingabe des obigen Befehls wurde ein Download, Entpacken und Installieren gestartet, was einige Zeit in Anspruch nahm. Danach hat diese Lösung für mich funktioniert.
Dale
Es dauerte 11 Minuten, bis dies abgeschlossen war, aber es scheint zu funktionieren. Ein Stich in der Zeit spart neun. Dies sollte die akzeptierte Antwort sein.
Mwieczorek
Ich bin auf Ubuntu. Ich habe den Gradlew wie oben beschrieben sauber gemacht, aber nicht funktioniert. :( .Befehl nicht gefunden.
Abhijit Gujar
1
@AbhijitGujar Du solltest ./gradlew cleanstattdessen Ubuntu ausprobieren . (Es wird die gradlewausführbare Datei aus dem Projektverzeichnis ausgeführt.)
TerraPass
7
./gradlew cleanhat dieses Problem für mich nicht gelöst. Es zeigte den gleichen Fehler erneut, dh "Verzeichnis kann nicht gelöscht werden"
abggcv
12

Das Löschen des Verzeichnisses intermediatesist eine schnelle Lösung für das Problem.

Das Verzeichnis wird neu erstellt, wenn das Projekt neu erstellt wird.

DeaMon1
quelle
1
Ich habe versucht, das Zwischenverzeichnis zu löschen, aber Windows teilt mir mit, dass ich das Verzeichnis nicht löschen kann. Seltsam.
Tronman
Es funktionierte für mich bei einem der Projekte, aber nicht bei einem anderen :(
abggcv
7

Ich hatte das gleiche Problem mit Android Studio 2.2 Preview 1, die Lösung von @AndresSuarez war korrekt, aber aus bestimmten Gründen konnte ich den JAVA TM -Prozess in meinem Task-Manager nicht finden. Also habe ich die folgende Lösung ausprobiert und es hat funktioniert -

Öffnen Sie die Eingabeaufforderung und geben Sie ein TASKKILL /F /IM java.exe. Dadurch werden alle JAVA TM -Prozesse automatisch beendet. Jetzt kompilieren Sie die App erneut, es wird funktionieren.

Darüber hinaus können Sie eine .bat- Datei erstellen , den obigen Code hinzufügen und jedes Mal ausführen, wenn Sie auf das Problem stoßen.

Rohan Kandwal
quelle
5

Ich hatte dieses Problem in Android Studio 2.3.

Ich habe Android Studio einfach neu gestartet und konnte danach ohne Beschwerden reinigen.

Johan Lund
quelle
4

Ich hatte das gleiche Problem und das hat bei mir funktioniert:

  1. Schließen Sie Android Studio.
  2. Zwischenverzeichnis löschen (solange Android Studio geöffnet ist, kann dieses Verzeichnis nicht gelöscht werden)
  3. Öffnen Sie Android Studio erneut
M. Chavoshi
quelle
4

Ich löste mit Befehl:

taskkill /F /IM java.exe

und dann:

gradle assembleDebug 
Rick
quelle
4

Für mich geschah dies aufgrund eines aktiven Debugging-Prozesses . Stellen Sie daher vor dem Reinigen oder Wiederherstellen sicher, dass alle aktiven Prozesse abgebrochen werden. Führen Sie Invalidate Caches / Restart aus , um den Erfolg zu bestimmen .

Dmitry Smolyaninov
quelle
3

Ich habe dieses Problem in meinem Ubuntu so gelöst.

  1. Überprüfen Sie, ob in Ihrem System (Ubuntu) Prozesse ausgeführt werden, wie im Task-Manager in Windows.

    Ubuntu Terminal Befehl zum Auflisten aller laufenden Prozesse ----> "gnome-system-monitor"

  2. Beenden oder beenden Sie die JAVA- und ANDROID-Prozesse in der Liste.

  3. Starten Sie das Studio erneut und importieren Sie das Projekt.

Es funktioniert für mich ohne Probleme. Hoffe das hilft...

Ich dachte, dies ist das Problem mit dem Prozess, der bereits erstellt und dupliziert wurde.

HariPrasad
quelle
3

Für mich hilft es, wenn ich Exit Android Studionoch einmal klicke Clean Project(es erscheint der gleiche Fehler) und dann weiter klicke Make Project- danach natürlich die Run 'app'Schaltfläche in Android Studio.

y07k2
quelle
3

Suchen Sie nach Programmen, die den Ordner app / build / output / apk verwendet haben , und löschen Sie dann einfach den Ordner.

Ich denke, Android Studio muss alten apk-Ordner löschen, bevor er neu erstellt wird.

Mete
quelle
3

Manchmal verursachen Zwischenprodukte Probleme. Löschen Sie sie und erstellen Sie das Projekt neu

ODER

Führen Sie einfach den Befehl cmd aus -> gradlew clean

in Ihrem Projektordner im Arbeitsbereich (seine Arbeit für mich)

Chetan Joshi
quelle
2

Die Lösung ist ganz einfach.

Dies ist eine der Lösungen, die für mich funktioniert hat.

Möglicherweise wird der Ordner app / build / output / apk Ihres Projekts geöffnet.

Schließen Sie einfach diesen Ordner und erstellen Sie Ihr Projekt neu. und es wird gelöst.

Mehul
quelle
Ja, ich hatte dieses Problem. Es gab eine Berichtsdatei, die in build / report /
checkstyle.html
2

Wie im Fehlerbericht vorgeschlagen , kommentieren Sie die Zeile aus

idea.jars.nocopy=false

in der idea.propertiesDatei hat das Problem für mich gelöst.

Beachten Sie, dass dies jedes Mal durchgeführt werden muss, wenn Android Studio aktualisiert wird.

Jose Gómez
quelle
2

Für mich ist der Schuldige, dass adb an der apk-Datei festhält, da ich sie zum Installieren und Starten der Anwendung auf meinem physischen Gerät über die Befehlszeile verwende.

Also einfach:

Task-Manager> Prozess beenden adb.exe

Anschließend kann die Datei gelöscht und das Projekt möglicherweise bereinigt werden

Benallansmith
quelle
2

reagieren native Entwickler

Lauf

sudo cd android && ./gradlew clean

und wenn du apk veröffentlichen willst

sudo cd android && ./gradlew assembleRelease

Hoffe es wird jemandem helfen

Muhammad Ashfaq
quelle
1

Wenn Sie mit einem lokalen Backend (Java-Servlet in der lokalen Google App Engine) testen, blockiert der ausgeführte Prozess einige Dateien. Sie können also nicht live bereitstellen. In diesem Fall können Sie dieses Problem lösen, indem Sie das lokale Backend stoppen, bevor Sie mit dem Bereinigen oder Erstellen beginnen. Die Option finden Sie unter "Ausführen -> Backend stoppen".

Tino
quelle
1

In Android Studio 3.0 hatte ich das gleiche Problem. Dies hat es behoben:

  1. Studio schließen
  2. Löschen Sie projectRoot / build / und projectRoot / app / build /
  3. Starten Sie Studio neu
Joseph Bani
quelle
1

Ich hatte das gleiche Problem, nachdem ich mein Projekt von D: auf G: -Laufwerk verschoben hatte, aber die Festplattenprüfung löste mein Problem

Ich habe chkdsk / f / r / x G verwendet: ** hier wurden einige Kommandozeilenschalter verwendet: **

/ F Behebt Fehler auf der Festplatte

/ R Findet fehlerhafte Sektoren und stellt lesbare Informationen wieder her (impliziert / F)

/ X Erzwingt, dass das Volume bei Bedarf zuerst abmontiert wird (impliziert / F) (wichtig)

Hinweis: / X ist wichtig, da dadurch die Bereitstellung des Laufwerks aufgehoben wird und Sie das Erstellungsverzeichnis Ihres Projekts manuell löschen können.

Jetzt das Projekt neu erstellen

Sumanpal Singh Saggu
quelle
Das hat funktioniert. Danke dir! :) Aber es hat fast 5 Stunden gedauert. Zeit zu vervollständigen.
Rohit Sharma
1

Ich habe genau dieses Problem für mich gelöst.

Das Problem war, dass jemand anderes die Datei erstellt hatte. Obwohl ich Administratorrechte auf dem Computer habe, konnte ich keine Änderungen an der Datei oder den Dateien vornehmen. Sie müssen in die Eigenschaften der Datei oder des Ordners gehen und den Besitz ändern oder den Besitz hinzufügen. Diese Webseite erklärt Schritt für Schritt, was Sie tun müssen.

Nachdem ich das oben genannte getan hatte, fand ich die Datei im Datei-Explorer und extrahierte sie manuell. Ich glaube nicht, dass es im Android Studio-Projekt benötigt wird, wenn es trotzdem versucht hat, es zu löschen.

Adam Higgins
quelle
0

Dieses Problem erschien mir im stabilen Kanal von Android Studio 2.0 und die Lösung war auf ein Problem zurückzuführen, das beim Aktualisieren meines Android Studios aufgetreten ist. Ich habe dieses Problem durch die Installation eines neuen Android Studios gelöst. nach dem Löschen aller alten Dateien für die alte Installation. und um die sehr schöne Funktion von Instant Run beizubehalten

Mohamed
quelle
0

Wenn Sie immer noch Probleme haben, aktualisieren Sie auf die neueste Version von Android Studio (ab sofort 2.1). Möglicherweise lag ein Fehler mit der älteren Version von Android Studio vor. Es ist jetzt für mich gelöst.

Ishant Sagar
quelle
Kommt in 2.2 Vorschau 1 für mich vor, daher glaube ich nicht, dass es behoben ist.
Rohan Kandwal
0

Das Problem wurde behoben, indem das Projekt in Android Studio bereinigt und erneut ausgeführt wurde. Kann auch "Make Project" machen.

sofs1
quelle
0

Ich hatte das gleiche Problem und löste es, indem ich den Projektordner in die ext4-Partition verschob

Ahmed Esameddeen
quelle
Ja, ich habe an anderer Stelle gelesen, dass das System Android Studio / gradle / React Native / packager / watchman (aus irgendeinem Grund) Probleme mit NTFS-Dateisystemen hat.
Venryx
0

Ich hatte den gleichen Fehler, habe mehrere Möglichkeiten ausprobiert, aber die Lösung für mich bestand darin, Build-Ordner aus den Verzeichnissen / android und / android / app zu löschen.

Laufen react-native run-androidhat für mich funktioniert.

Eltaf
quelle
0

Ich habe es gelöst, indem ich das fehlende Verzeichnis im Projekt global durchsucht habe. Löschen Sie dann alle Dateien, die dieses Schlüsselwort enthalten. Es kann erfolgreich bereinigt werden, nachdem ich alle Verzeichnisse buildund .externalNativeBuildmanuell entfernt habe.

wdanxna
quelle
0

Ich verwende Android Studio 3.0 Beta 7. Clean Project, Caches ungültig machen, Studio neu starten hat nicht funktioniert, aber das Aktualisieren der Kotlin-Version auf 1.1.51 und das Neustarten von Studio haben dieses Problem für mich gelöst.

Adithya Reddy
quelle