Android Studio 3.1 „Uruchom” nie kompiluje kodu

87

Kiedy próbuję zainstalować aplikację, istnieją dwie możliwości:

  1. Zainstaluj istniejący plik APK z folderu kompilacji, gdy uruchomię app
  2. Zainstaluj APK po wykonaniu clean build

W przypadku istniejącego pliku APK w folderze kompilacji aplikacja działa dobrze. Ale kiedy wyczyszczę projekt za pomocą Build-> Clean Project, a następnie spróbuję uruchomić app(tj. Zainstalować aplikację na moim emulatorze lub urządzeniu fizycznym), wyświetla mi się błąd:

Plik APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk nie istnieje na dysku.

UWAGA: To zachowanie występuje tylko wtedy, gdy wyczyszczę projekt, a nie wtedy, gdy mam już wstępnie zbudowany plik APK aplikacji w moim folderze kompilacji

Wspomniałem : Plik APK nie istnieje na dysku, ale chodzi mi o to, że kiedy zwykle uruchamiamy aplikację po wyczyszczeniu projektu, nigdy nie musimy tworzyć jej kompilacji, jeśli APK nie istnieje w folderze kompilacji , automatycznie generuje i instaluje najnowszą.

Rzeczy, których próbowałem:

  1. Uruchamianie aplikacji, gdy plik APK istnieje w folderze kompilacji (działa idealnie)
  2. Uruchamianie Clean Project-> Uruchamianie aplikacji (oczekuje się, że projekt zostanie zbudowany, a aplikacja zostanie zainstalowana, ale pokazuje powyższy błąd!)
  3. Ten sam proces czyszczenia i uruchamiania aplikacji po wykonaniu Invalidate Caches/Restart
Sneh Pandya
źródło
3
Build -> Clean Project->Rebuild Project
IntelliJ Amiya
@IntelliJAmiya dokładnie tak, jak powiedziałeś, ale chodzi o to, że kiedy przebudowuję projekt, na pewno działa, ale czy nie powinien generować APK i działać w ten sam sposób, jeśli uruchomię aplikację?
Sneh Pandya
Sprawdź ten link, aby uzyskać odpowiedź: stackoverflow.com/a/49508278/3806413
0xAliHn

Odpowiedzi:

151

Mam rozwiązanie twojego problemu. Mam nadzieję, że to pomoże!

Potwierdzone również przez Android Studio na Twitterze : https://twitter.com/androidstudio/status/981914632892960768

1) Edytuj konfigurację aplikacji, jak poniżej.

wprowadź opis obrazu tutaj

2) Tutaj możesz zobaczyć konfigurację aplikacji, jak poniżej.

wprowadź opis obrazu tutaj

3) Tutaj brakuje atrybutu make-aware w Gradle w konfiguracji przed uruchomieniem. Możesz zobaczyć tutaj.

wprowadź opis obrazu tutaj

4) W ten sposób dodaj atrybut Make uwzględniający Gradle. Kliknij ikonę + i wybierz opcję Uwzględnij Gradle, jak pokazano na tym ekranie.

wprowadź opis obrazu tutaj

5) Możesz to dodać bez pisania żadnego zadania, po prostu naciśnij przycisk OK, a zadanie zostanie dodane i teraz powinno wyglądać tak. Teraz zastosuj zmiany i uruchom aplikację.

wprowadź opis obrazu tutaj

Mam nadzieję, że rozwiąże ten problem z instalacją starego apk w czystej kompilacji w nowym Android Studio 3.1.

Uwaga: ten problem został rozwiązany w nowej wersji stabilnej Android Studio 3.1.1 .

Miłego kodowania !!

Sagar Kacha
źródło
1
Wygląda na to, że jeśli zmienisz kod i uruchomisz aplikację, nie jest to budowanie aplikacji, tylko uruchomienie starego kodu. To rozwiązanie zadziałało dla mnie.
Vicky
NIE DZIAŁA: zamykanie zakończone za 0 ms Błąd podczas generowania zależności podzielony APK com.android.ide.common.process.ProcessException: Nie udało się wykonać aapt w com.android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:809) w com .android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:797) w com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp (InstantRunSplitApkBuilder.java:373)
android51130
@ android51130 To działa dla mnie. Czy możesz sprawdzić konfigurację innego gradle twojego projektu. Myślę, że to byłby problem.
Sagar Kacha
@ android51130 Tak, dokładnie. Obecnie w mojej konfiguracji natychmiastowe uruchamianie jest wyłączone. Więc to rozwiązanie działa dla mnie.
Sagar Kacha
1
Miałem ten problem w najnowszej wersji AS 4.2 Canary przez długi czas. To rozwiązało ten problem, dzięki.
muthuraj
3

Plik APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk nie istnieje na dysku.

Może to być błąd. Powinieneś zmienić ustawienia.

Powinieneś otworzyć Run/Debug Configurations dialog& wybierzRun > Edit Configurations

Upewnij się, że Gradle-aware Makejest dodany do listy zadań, czy nie. Jeśli nie, kliknij +i wybierz z opcji.

wprowadź opis obrazu tutaj

Uwaga

Jeśli otrzymasz

Zamknięcie zakończone w 0 ms Błąd podczas generowania zależności podzielony plik APK com.android.ide.common.process.ProcessException: nie można wykonać aapt w com.android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:809) w com.android. builder.core.AndroidBuilder.processResources (AndroidBuilder.java:797) na com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp (InstantRunSplitApkBuilder.java:373)

Powinieneś usunąć zaznaczenie INSTANT RUN.

Plik - Ustawienia - Kompilacja, Wykonanie, Wdrożenie - Natychmiastowe uruchamianie i odznacz opcję Włącz natychmiastowe uruchamianie .

IntelliJ Amiya
źródło
1
Tak, będzie działać przy przebudowie, ponieważ konfiguracja jest już skonfigurowana z natychmiastowym uruchomieniem, więc. Ale nie będzie działać przy czystej kompilacji i połączeniu projektu.
Sagar Kacha
1
@SaguKacha Rzeczywiście.
IntelliJ Amiya
NIE DZIAŁA: zamknięcie zakończone za 0 ms Błąd podczas generowania zależności podzielony APK com.android.ide.common.process.ProcessException: nie udało się wykonać aapt w com.android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:809) w com .android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:797) w com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp (InstantRunSplitApkBuilder.java:373)
android51130
@ android51130 Whats your buildToolsVersion ??
IntelliJ Amiya
@IntelliJAmiya 26.0.2
android51130
2

wyczyść projekt i uruchom ponownie

Jeśli to nie zadziała, to

  • Krok 1 Zamknij projekt.
  • Krok 2 Przejdź do folderu projektu i usuń cały folder kompilacji.
  • Krok 3 Uruchom swój projekt.
Vishal Sojitra
źródło
1
Próbowałem również zamknąć projekt, zamknąć Android Studio i wykonać unieważnienie pamięci podręcznych / restart, ale bez powodzenia, po wyczyszczeniu aplikacji zawsze pokazuje błąd i, o dziwo, jeśli projekt jest zbudowany, zawsze uruchamia ten sam plik APK, który znajduje się w folderze kompilacji bez aktualizacja z wszelkimi zmianami.
Sneh Pandya,
czy próbowałeś kroku 2? przejdź do folderu projektu i usuń cały folder kompilacji z folderem kompilacji modułu.
Vishal Sojitra,
Tak, usunąłem również folder kompilacji, nic nie działa!
Sneh Pandya,
Desable Instan Run i zrobić wszystko ponownie.
Vishal Sojitra,
czy dostałeś rozwiązanie?
Vishal Sojitra,
0

Ten problem został rozwiązany w wersji Android Studio 3.1.1 (kwiecień 2018). Zaktualizuj swoje studio Android do wersji 3.1.1.

Oto wyjaśnienie dotyczące zmiany szczegółów problemu, przyczyny i rozwiązania:

W niektórych przypadkach, gdy projekt został utworzony w Android Studio 3.0 was opened for the first time in Android Studio 3.1, the Gradle-aware Make task was removed from the Before launch area in Run/Debug Configurations.Wynik był taki, że projekty nie były kompilowane po kliknięciu przycisku Uruchom lub Debuguj, co z kolei powodowało błędy, takie jak wdrażanie nieprawidłowych plików APK i awarie podczas korzystania z funkcji Natychmiastowe uruchamianie.

Aby rozwiązać ten problem, Android Studio 3.1.1 adds the Gradle-aware Make task to the run configuration for projects that are missing this entry.ta modyfikacja występuje po pierwszej synchronizacji Gradle podczas ładowania projektu.

Oficjalne informacje o wersji: https://developer.android.com/studio/releases/index.html#3-1-0

0xAliHn
źródło