Błąd związany z resources_ap po aktualizacji do Android Studio 3.4

79

Zaktualizowałem dzisiaj Android Studio 3.4. Nie mogę już uruchomić aplikacji. Wyczyściłem projekt, wielokrotnie restartowałem studio Android. Bezskutecznie unieważniłem również pamięć podręczną. Podczas instalowania aplikacji pojawia się następujący błąd:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexWithInstantRunSlicesApkForDebug'.
> java.lang.RuntimeException: java.io.FileNotFoundException: E:\...\app\build\intermediates\instant_run_split_apk_resources\debug\instantRunSplitApkResourcesDebug\out\slice_1\resources_ap

Czy ktoś mógłby zaoferować wskazówkę, jak temu zaradzić?

Edycja: mam dwa projekty z różnymi zachowaniami związanymi z tym problemem:

  1. Projekt A początkowo miał ten problem. Wyłączyłem Instant Run zgodnie z odpowiedzią, problem został rozwiązany. Włączyłem później natychmiastowe uruchamianie, a projekt A nadal działa poprawnie.
  2. Projekt B również miał ten problem, który został rozwiązany przez wyłączenie Instant Run. Jednak jego problem wystąpi, gdy tylko zostanie włączona funkcja Instant Run. Nie wiem, jaka różnica między tymi dwoma projektami to skutkuje. Jednym z podejrzanych jest projekt biblioteki C. Biblioteka C jest częścią Projektu A (tj. Jej kod źródłowy, zasoby znajdują się w Projekcie A). Jednak Projekt B używa elementu aar Biblioteki C jako modułu.
Hong
źródło
6
Wyłączenie funkcji Instant Run w Ustawieniach wyeliminowało problem (zgodnie z opisem w odpowiedzi na pytanie Błąd: wykonanie nie powiodło się dla zadania ': app: transformDexWithInstantRunSlicesApkForDebug'. Nie udało się odczytać pliku zip )
Marco Borchert
@MarcoBorchert Dziękuję. Zaczęło działać po wyłączeniu funkcji Instant Run. Później ponownie włączyłem Instant Run i nadal działa. Wygląda na to, że wyłączenie funkcji Instant Run nie powoduje pewnych prac czyszczących, których nie można wykonać innymi zwykłymi metodami czyszczenia. Czy mógłbyś zamienić swój komentarz na odpowiedź, abym mógł ją zaakceptować?
Hong
@MarcoBorchert W przypadku innego projektu nie mogę ponownie włączyć funkcji Instant Run. Muszę być cały czas wyłączony.
Hong

Odpowiedzi:

67

Wyłączenie funkcji Instant Run jako obejścia (Plik / Ustawienia / Natychmiastowe uruchamianie) wydaje się eliminować problem.

Zgodnie z OP możliwe jest ponowne włączenie Instant Run bez problemu powtarzającego się w niektórych projektach.

Marco Borchert
źródło
94

Problem powinien zostać rozwiązany w Android Studio 3.4.2.


EDYCJA: Oto moja stara odpowiedź, jak to naprawić w Android Studio 3.4.0 i 3.4.1:

Użycie Gradle 5.4 zamiast 5.1.1 pomogło mi z tym błędem.

Zaktualizuj plik gradle-wrapper.properties o: distributionUrl=https\://services.gradle.org/distributions/gradle-5.4-all.zip

Uwaga: nie testowałem starszych wersji Gradle, więc jest możliwe, że nawet (na przykład) wersja 5.2 będzie działać. Możesz zobaczyć wszystkie wydania Gradle tutaj - https://gradle.org/releases/

Robyer
źródło
Dziękuję Ci. Właśnie wypróbowałem i potwierdziłem, że ten środek zaradczy działa. Niestety mogę przyjąć tylko jedną odpowiedź. Myślę, że Google rozwiąże ten problem poprzez aktualizację w taki czy inny sposób. Jednym ze sposobów jest wymuszenie aktualizacji Gradle.
Hong
5
@Hong Możesz jednak zmienić zaakceptowaną odpowiedź. To rozwiązanie jest zdecydowanie lepsze i bardziej pomocne dla innych czytelników, ponieważ nie jest to tylko obejście.
Marco Borchert
Proszę, wybacz mi moją konserwatywność w tych sprawach. Zazwyczaj trzymam się z daleka od najnowszych wersji, chyba że zostały dokładnie przetestowane. Zakładam, że każda aktualizacja Android Studio została przetestowana przez wielu życzliwych beta testerów przed jej wydaniem.
Hong
@Hong Cóż, myślę, że możemy bardziej ufać testom Gradle (ponieważ ta wersja była już publicznie wydana już od jakiegoś czasu) niż świeżo wydanego Android Studio z tym oczywistym problemem. Nie testowałem również innych wersji Gradle, ale być może możesz użyć starszej wersji niż 5.4, jeśli nie chcesz używać najnowszej (zwróć też uwagę, że najnowsza to teraz 5.4.1) - zobacz gradle.org/releases Zaktualizowałem moją odpowiedź o to info.
Robyer
1
Wygląda na to, że zadziałało na AndroidStudio 3.4 na komputerze Mac. Dzięki @Robyer
Hugo
39

Nie ma potrzeby wyłączania funkcji Instant Run.
Po prostu usuń katalog „.gradle” w projekcie i skompiluj katalog wewnątrz modułu „app”.
Wykonaj czysty projekt i przebuduj projekt.
To rozwiąże problem.

Bibin Johny
źródło
5
Prawidłowa odpowiedź dla mnie! Nawet nie musiał czyścić. Właśnie usunąłem folder .gradle (wybierz tryb „Projekt” w lewym oknie Android Studio).
Regis_AG
2
Poprawna odpowiedź! Nie ma potrzeby wyłączania natychmiastowego uruchamiania. Dzięki!
rstewart22
Ohhhh tak! To jest odpowiedź.
Teddy
Dziękuję Ci bardzo! Walczyłem przez około godzinę, zanim zobaczyłem twój napiwek.
Igor de Lorenzi
Dziękuję bardzo! Próbowałem wszystkiego, ale to po prostu nie działa. Tylko to działa. Jeśli tylko zobaczę to kilka godzin wcześniej
user1885498
6

Jest to spowodowane funkcją „natychmiastowego uruchamiania” w Android Studio 3.4, którą można wyłączyć:

Otwórz okno dialogowe Ustawienia lub Preferencje. Przejdź do Build, Execution, Deployment> Instant Run. Usuń zaznaczenie pola obok opcji Włącz natychmiastowe uruchamianie

Cieszyć się...!

Mahi Saini
źródło
2

Przejdź do folderu projektu i przenieś wszystko z ... \ app \ build \ do innego folderu poza projektem. (aby wyczyścić folder kompilacji z kopią zapasową) W moim przypadku wyczyszczenie folderu kompilacji rozwiązało problem, do tego czasu wyłączałem opcję natychmiastowego uruchamiania dla każdej nowej instalacji.

Szorstki
źródło
3
W przypadku, gdy przeniesienie buildkatalogu nie wystarczyło , musiałem się również przenieść .gradlei to rozwiązało problem.
carrizo
0

Wypróbowałem rozwiązania „Gradle 5.4” i „Wyłączanie natychmiastowego uruchamiania”, ale nie działały, dopóki nie włączyłem opcji „Czekaj na debugera”, aż do „Opcji programisty” w moim telefonie (Huawei Mate 10). Potwierdziłem, że to działa tylko przy wyłączonym „Instant Run”.

Kar Shiang Tey
źródło
0

Ten problem przytrafił mi się w systemie Windows. Rozwiązałem to, wyłączając natychmiastowe uruchamianie. Mam również tę samą wersję Android Studio w systemie Linux i działa dobrze z włączoną funkcją natychmiastowego uruchamiania.

Abdallah
źródło
0

Ten sam błąd wystąpił, kiedy zaktualizowałem do Android Studio 3.4.2, zaktualizowałem narzędzie-build-gradle do 3.4.2 i problem zniknął.

snti
źródło
-1

Wyłączenie funkcji Instant Run jako obejścia (Plik / Ustawienia / Natychmiastowe uruchamianie) wydaje się eliminować problem.

Wyjątek zerowego wskaźnika
źródło