Błąd: nie powiodło się wykonanie zadania „: app: clean”. Nie można usunąć pliku


166

Próbuję odbudować mój projekt Android Studio Gradle (zawierający głównie kod Kotlin), ale zaczął wyrzucać UnableToDeleteFileExceptionpodczas procesu czyszczenia / przebudowy:

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

Zaczęło się to dziać po próbie zmiany struktury pakietu mojego projektu. Niestety, zrobiłem to, zmieniając nazwę i przenosząc foldery źródłowe zamiast refaktoryzacji przez Android Studio, co było złym pomysłem.

Cały dzień szukałem rozwiązania tego problemu, a oto rzeczy, których bezskutecznie próbowałem:

  • Wykonywanie synchronizacji Gradle;
  • Ponowna instalacja środowiska Java JRE i Java SDK;
  • Ponowna instalacja najnowszej wersji Android Studio (1.4);
  • Cofam się do poprzedniej wersji AS (1.3);
  • Unieważnienie pamięci podręcznej AS i ponowne uruchomienie;
  • Usuwanie katalogów gradlei w .gradlekatalogu projektu;
  • Usuwanie .gradlekatalogu w moim katalogu użytkownika;
  • Bieganie gradlew cleanz terminala AS;
  • Ręczne kopiowanie źródeł do nowego projektu (dziwne, że w jakiś sposób utrzymuje się między projektami ...)

Rzeczy, które próbowałem z niewielkim sukcesem, ale pozwolę mi tylko przeprowadzić jeszcze jedno czyszczenie i odbudować, zanim błąd wystąpi ponownie:

  • Zamykanie AS, ręczne usuwanie plików kompilacji i ponowne otwieranie;
  • Zabijanie java.exeprocesu podczas działania AS (technicznie można to zrobić za każdym razem, ale jest żmudne i spowalnia proces kompilacji)

Wygląda więc na to, że kompilacja procesu Java może z jakiegoś powodu zablokować pliki kompilacji, ale może to również mieć coś wspólnego z Kotlinem. Mam (bardziej dojrzały) projekt Java na Androida, nad którym pracuję, chociaż nie mogę odtworzyć tego błędu podczas czyszczenia. Wydaje się, że dzieje się to tylko z moim projektem Kotlin.

Aktualizacja:

Odkryłem, że przyczyną problemu jest wtyczka Kotlin dla systemu Android. Problem znika po usunięciu apply plugin: 'kotlin-android'modułu z build.gradlepliku i wraca po ponownym włożeniu. Zapraszam do przedstawienia wglądu w to.

Aktualizacja 2:

Ostatnia aktualizacja nie jest przyczyną. Odkryłem, że jeśli projekt zawiera plik Kotlin, odbudowa i czyszczenie nie powiedzie się. Nadal kończy się niepowodzeniem, nawet jeśli wszystkie pliki Kotlin zostaną usunięte, dopóki nie zostanie zabity proces Java w tle, co oznacza, że ​​ma pewien rodzaj blokady na plikach kompilacji. Zgłosiłem tutaj błąd, podając więcej szczegółów i kroki, aby go odtworzyć: KT-9440


3
unieważnij pamięć podręczną i uruchom ponownie studio z menu plików.
Mohammad Tauqir

Już tego próbowałem, ale na wszelki wypadek spróbowałem ponownie. Jednak nadal nie ma szczęścia.
Bryony

Ten rodzaj problemu często mi się przytrafia. jeśli pierwsza opcja nie zadziałała, wyloguj się z systemu i po zalogowaniu uruchom studio.
Mohammad Tauqir

2
Zrestartowałem komputer, a problem nadal występuje. Ale dzięki za pomoc.
Bryony

Odpowiedzi:


123

Jeśli używasz Android Studio 2.0 Beta, ten problem może się pojawić (bardziej prawdopodobne, jeśli pracujesz w systemie plików NTFS) i wygląda na to, że przyczyną jest „Natychmiastowe uruchomienie”. Wyszukaj „Instant Run” w ustawieniach i odznacz pole.

Zgłosiłem problem w narzędziu do śledzenia błędów.


Używam sshfs. Ten sam problem tutaj. Wyłączenie natychmiastowego uruchamiania działa dla mnie.
Song

2
Tak, WYŁĄCZENIE NATYCHMIASTOWEGO URUCHAMIANIA Studio 2.0 beta 7 rozwiązało ten wyjątek
Yogesh Seralia

1
Mój Android Studio 2.0 utknął podczas odświeżania konkretnego projektu. Próbowałem wszystkiego i przypadkowo podążyłem za tą odpowiedzią i rozwiązałem problem, który był inny niż pytanie. Utknąłem na tak długo. Chciałbym móc głosować za Ciebie więcej razy! Dziękuję
Rachita Nanda

9
To zadziałało dla mnie. W przypadku, gdy komuś pomoże: Aby wyłączyć natychmiastowe uruchamianie w wersji 2.1 Android Studio, to jest Plik -> Ustawienia -> Kompilacja, Wykonanie, Wdrożenie -> Natychmiastowe uruchamianie, a następnie odznacz pierwsze pole „Włącz natychmiastowe uruchamianie ...”.
nickandross

1
Używam AS v2.1.3. W moim przypadku pole "Natychmiastowe uruchamianie" było już odznaczone, więc zaznaczyłem je, zastosowałem, wyczyściłem i ponownie ułożyłem projekt (błąd nadal tam był) a następnie odznaczyłem go, zastosowałem, wyczyściłem i ponownie ułożyłem projekt i błąd zniknął.
jose

114

Zabiłem wszystkie procesy java TM w menedżerze zadań i pozwoliło mi to odbudować


29
+1. Problemem był proces Zombie Java. Jeśli korzystasz z Win 10, otwórz Menedżera zadań; poszukaj pliku binarnego Java (TM) Platform SE; Zakończ zadanie.
Jakiś student Noob

26
gradle --stopAlternatywnie możesz użyć do zatrzymania zablokowanych demonów.
Jayson Minard,

1
Czy istnieje jakiś automatyczny sposób na zabicie procesów. Marnuję tyle czasu, zabijając go ręcznie przy każdym czyszczeniu.
Avatar Qing

W moim przypadku było otwarte Meld (narzędzie do porównywania i scalania), które blokowało folder w celu wyczyszczenia
Armando

w moim przypadku nie znalazłem Java TM, więc ponownie uruchomiłem okna
Dasser Basyouni

41

Spróbuj File -> Invalidate Caches and Restart

To zadziałało dla mnie


Opcja „Unieważnij pamięć podręczną i uruchom ponownie” powoduje, że studio Android utknęło w komputerze z systemem Windows 8. Używam Android Studio 2.2.2. W ogóle mogę korzystać z tej funkcji. Czy ktoś ma na to odpowiednie rozwiązanie?
Nithinjith

Plik -> Unieważnij pamięć podręczną i uruchom ponownie, działa, ale zajmuje tyle czasu, że nie jest w porządku. Podstawowy problem z nieprawidłowym działaniem uprawnień do plików Win10 pojawił się ponownie po aktualizacji do SDK 27 (zaakceptowałem komunikat o aktualizacji). Po tej samej aktualizacji AS woła o NDK 15, ale dostępny jest tylko NDK14, ustaw zestaw SDK kompilacji gradle na 26 i nie płacze. Wygląda na to, że jesteśmy tu między dwoma pokoleniami? W Win10 x64 występują również problemy z emulatorami, które wymagają wyczyszczenia danych w celu ponownego wykorzystania. Brzmi jak bardzo dużo szczegółów do naprawienia?
Jan Bergström

30

Po tym, jak wysłałem raport o błędzie do narzędzia do śledzenia błędów Kotlin, zostałem powiadomiony o numerze 61300 w module śledzącym AOSP. To wydaje się być przyczyną. Ponieważ w tej chwili nic nie mogę zrobić, oznaczę to pytanie jako odpowiedź i zaktualizuję odpowiedź, jeśli błąd zostanie naprawiony.

W międzyczasie, jeśli używasz systemu Windows, wydaje mi się, że znalazłem obejście. Będziesz musiał pobrać LockHunter ( oczywiście na własne ryzyko), a następnie dodać następujący kod do gradle.buildpliku swojego modułu , zastępując lockhunterzmienną ścieżką do LockHunter.exe:

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

Powoduje to, że LockHunter wymusza i dyskretnie odblokowuje i usuwa pliki kompilacji, gdy uruchomione jest zadanie app: clean.


Rozwiązałem czysty problem z tym, ale nie mogę zrobić tego samego z uruchomieniem aplikacji. Nadal pojawia się ten sam błąd. Mam jakiś pomysł; może zmienić czysty na coś innego?
codiac

Błąd: (21, 0) Deklarowanie niestandardowego „czystego” zadania podczas korzystania ze standardowych wtyczek cyklu życia Gradle jest niedozwolone.
Shashwat Gupta

26

Wyczyść projekt z terminala za pomocą tego polecenia gradlew clean.

wprowadź opis obrazu tutaj


2
Wpisanie powyższego polecenia rozpoczęło pobieranie, rozpakowywanie i instalację, co zajęło trochę czasu. Potem to rozwiązanie zadziałało dla mnie.
Dale

Zajęło to 11 minut, ale wydaje się działać. Ścieg w czasie oszczędza dziewięć. To powinna być akceptowana odpowiedź.
mwieczorek

Jestem na ubuntu, uruchomiłem gradlew czysty zgodnie z instrukcją powyżej, ale nie zadziałało .. :( .command not found.
Abhijit Gujar

1
@AbhijitGujar Zamiast tego powinieneś wypróbować ./gradlew cleanUbuntu. (Uruchomi gradlewplik wykonywalny z katalogu projektu.)
TerraPass

7
./gradlew cleannie rozwiązało za mnie tego problemu. Ponownie pokazał ten sam błąd, tj. „Nie można usunąć katalogu”
abggcv

12

Usunięcie katalogu intermediatesto szybkie rozwiązanie problemu.

Katalog zostanie odbudowany po odbudowaniu projektu.


1
Próbowałem usunąć katalog pośredni, ale system Windows mówi mi, że nie mogę usunąć katalogu. Dziwne.
tronman

Udało mi się to przy jednym z projektów, ale nie przy innym :(
abggcv

7

Miałem ten sam problem na Android Studio 2.2 w wersji zapoznawczej 1, rozwiązanie autorstwa @AndresSuarez było poprawne, ale z pewnych powodów nie mogłem znaleźć procesu JAVA TM w moim menedżerze zadań. Wypróbowałem więc następujące rozwiązanie i zadziałało -

Otwórz wiersz polecenia i wpisz TASKKILL /F /IM java.exe. Spowoduje to automatyczne zabicie wszystkich procesów JAVA TM. Teraz ponownie skompiluj aplikację, będzie działać.

Dodatkowo możesz utworzyć plik .bat , dodać do niego powyższy kod i uruchamiać go za każdym razem, gdy napotkasz problem.


5

Miałem ten problem w Android Studio 2.3.

Po prostu ponownie uruchomiłem Android Studio i po tym mogłem wyczyścić bez reklamacji.


5

U mnie stało się to z powodu aktywnego procesu debugowania . Dlatego przed czyszczeniem lub przebudową upewnij się, że wszystkie aktywne procesy zostały usunięte. Aby potwierdzić sukces, wykonaj Invalidate Caches / Restart .


4

Miałem ten sam problem i to zadziałało:

  1. zamknij Android Studio.
  2. usuń katalog pośredników (dopóki Android Studio jest otwarty, tego katalogu nie można usunąć)
  3. otwórz ponownie Android Studio

4

Rozwiązałem poleceniem:

taskkill /F /IM java.exe

i wtedy:

gradle assembleDebug 

3

Rozwiązałem ten problem w moim ubuntu w ten sposób.

  1. Sprawdź procesy uruchomione w systemie (Ubuntu), takie jak w menedżerze zadań w systemie Windows.

    Polecenie terminala Ubuntu wyświetlające wszystkie uruchomione procesy ----> "gnome-system-monitor"

  2. Zakończ lub zakończ procesy JAVA i ANDROID na liście.

  3. Ponownie uruchom studio i zaimportuj projekt.

U mnie działa bez problemu. Mam nadzieję że to pomoże...

Myślałem, że to jest problem z procesem, który jest już utworzony i zduplikowany.


3

Mi pomaga, gdy Exit Android Studiokliknę jeszcze raz Clean Project(pojawia się ten sam błąd) i następne kliknięcie Make Project- po tym oczywiście Run 'app'przycisk w Android Studio.


3

Znajdź programy, które korzystały z folderu app / build / output / apk , a następnie po prostu usuń folder.

Myślę, że Android Studio musi usunąć stary folder apk przed przebudową.


3

Czasami półprodukty stwarza problem, więc usuń go i przebuduj projekt

LUB

po prostu uruchom polecenie cmd -> gradlew clean

w folderze twojego projektu w przestrzeni roboczej (to dla mnie praca)


2

Rozwiązanie jest dość łatwe.

To jedno z rozwiązań, które mi się sprawdziły.

Może się zdarzyć, że folder app / build / output / apk twojego projektu jest otwarty.

więc po prostu zamknij ten folder i odbuduj projekt. i zostanie rozwiązany.


tak miałem ten problem, był plik raportu, który jest zapisany w build / report / checkstyle.html, zamknięcie tego pliku rozwiązało mój problem, dzięki
tamtom


2

Dla mnie winowajcą jest adb trzymający plik apk, ponieważ używam go do instalowania i uruchamiania aplikacji na moim fizycznym urządzeniu za pomocą wiersza poleceń.

Po prostu:

Menedżer zadań> Zakończ proces adb.exe

Następnie plik można usunąć, a projekt wyczyścić


2

reagują na rodzimych twórców

biegać

sudo cd android && ./gradlew clean

a jeśli chcesz zwolnić apk

sudo cd android && ./gradlew assembleRelease

Mam nadzieję, że to komuś pomoże


1

Jeśli testujesz z lokalnym zapleczem (serwlet java w lokalnym silniku aplikacji Google), uruchomiony proces blokuje niektóre pliki. Nie możesz więc wdrożyć na żywo. W tym przypadku możesz rozwiązać ten problem, zatrzymując lokalny backend przed rozpoczęciem czyszczenia lub kompilacji. Znajdziesz opcję w „Uruchom -> Zatrzymaj backend”.


1

W Android Studio 3.0 miałem ten sam problem. To naprawiło:

  1. Zamknij Studio
  2. Usuń projectRoot / build / i projectRoot / app / build /
  3. Uruchom ponownie Studio

1

Miałem ten sam problem po przeniesieniu projektu z dysku D: na G:, ale sprawdzenie dysku rozwiązało problem

Użyłem chkdsk / f / r / x G: ** tutaj zastosowano niektóre przełączniki wiersza poleceń: **

/ F Naprawia błędy na dysku

/ R Lokalizuje uszkodzone sektory i odzyskuje czytelne informacje (implikuje / F)

/ X Wymusza najpierw zejście woluminu, jeśli to konieczne (implikuje / F) (ważne)

Uwaga: / X jest ważny, ponieważ spowoduje odłączenie dysku i możesz ręcznie usunąć katalog kompilacji projektu,

teraz przebuduj projekt


To zadziałało. Dziękuję Ci! :) Ale zajęło to prawie 5 godzin. czas na ukończenie.
Rohit Sharma

1

Właśnie rozwiązałem ten problem dla siebie.

Problem polegał na tym, że ktoś inny utworzył plik, więc mimo że mam uprawnienia administratora na komputerze, nie mogłem wprowadzać zmian w pliku lub plikach. Musisz przejść do właściwości pliku lub folderu i zmienić właściciela lub dodać własność. Ta strona internetowa wyjaśnia, krok po kroku, co należy zrobić.

Po wykonaniu powyższych czynności znalazłem plik w eksploratorze plików i ręcznie go rozpakowałem. Nie sądzę, aby był potrzebny w projekcie Android Studio, jeśli i tak próbował go usunąć.


1

Inną aplikacją, która może korzystać z zasobów, jest najwyraźniej Kotlin REPL systemu Android Studio. Zamknąłem to i bez problemu mogłem budować od nowa.


0

Ten problem pojawił się w stabilnym kanale Android Studio 2.0, a rozwiązanie było spowodowane problemem podczas aktualizacji mojego studia Android. Rozwiązałem go, instalując nowe studio Android. po usunięciu wszystkich starych plików ze starej instalacji. i zachować bardzo przyjemną funkcję Instant Run


0

jeśli nadal masz problemy, zaktualizuj do najnowszej wersji Android Studio (obecnie 2.1), może to być błąd ze starszą wersją Android Studio. Teraz to rozwiązane.


Występuje w wersji 2.2 Preview 1 dla mnie, więc nie sądzę, że jest naprawiony.
Rohan Kandwal

0

Oczyszczenie projektu w Android Studio i ponowne uruchomienie rozwiązało problem. Można również wykonać „Make Project”.


0

Miałem ten sam problem i rozwiązałem go przenosząc folder projektu na partycję ext4


Tak, czytałem gdzie indziej, że system Android Studio / gradle / React Native / packager / watchman ma problemy (z jakiegoś powodu) w systemach plików NTFS.
Venryx

0

Miałem ten sam błąd, próbowałem na wiele sposobów, ale rozwiązaniem działało dla mnie usunięcie folderów kompilacji z katalogów / android i / android / app.

bieg react-native run-androidzadziałał dla mnie.


0

Rozwiązałem to, przeszukując globalnie brakujący katalog w projekcie. następnie usuń wszystkie pliki zawierające to słowo kluczowe. może pomyślnie wyczyścić po ręcznym usunięciu wszystkich katalogów buildi .externalNativeBuild.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.