Android Studio nie wdraża zmian w aplikacji


96

Czasami ten scenariusz występuje podczas programowania. Wprowadziłbym zmianę w swoim kodzie źródłowym, wcisnął przycisk Zapisz wszystko, a następnie uruchomiłbym, ale zmiana nie byłaby widocznie odzwierciedlona w aplikacji - (używam urządzenia do testowania). Mogę nawet odinstalować aplikację na moim urządzeniu i uruchomić ponownie, a nowo zainstalowana aplikacja nadal nie odzwierciedla zmiany w kodzie źródłowym. Kiedy tak się stanie, muszę wyedytować źródło, nacisnąć przycisk Uruchom i może wtedy nowa wersja ze zmianami, których się spodziewałem, będzie na urządzeniu.

Wypróbowałem również tutaj rozwiązanie, ale wydaje się, że nie działa często.

Android Studio - wdraża moją aplikację bez nowych zmian


proszę sprawdzić i odpowiedź.
Amit Vaghela

Czy znalazłeś obejście tego problemu? Miałem do czynienia z tym wcześniej i działało Wyczyść, Odbuduj lub po prostu uruchom ponownie Android Studio. Ale dzisiaj NIC wydaje się tego nie rozwiązać. Odinstalowuję Studio i mam zamiar zainstalować je ponownie i sprawdzić, czy coś się zmieni. Nie wierzę, że jest to problem z natychmiastowym uruchomieniem. Podejrzewam, że zaczęło się to dziać po ręcznej instalacji, którą zrobiłem dzisiaj korzystając adbz terminala. Rzeczy, których próbowałem: - wyczyść, odbuduj, unieważnij pamięci podręczne i uruchom ponownie Studio -
wymuś

Odpowiedzi:


74

Mam ten sam problem. Ten wątek pojawił się jako pierwszy, kiedy go szukałem. Rozwiązałem to (mając nadzieję), nie używając funkcji Instant Run. Może nie jest to najlepsze rozwiązanie, ale na razie działa.

Po prostu przejdź do „Plik -> Ustawienia -> Kompilacja, wykonanie, Wdrażanie -> Natychmiastowe uruchamianie” i po prostu je wyłącz. Dzięki temu Android Studio tworzy się od zera za każdym razem, ale jest to lepsze niż nie budowanie go poprawnie.

Mini rant: prawie każda wersja Android Studio zawiera irytujący błąd. Niedługo wypuszczą wersję 2, ale jej wersja beta wciąż zawiera błędy. Mam nadzieję, że w najbliższej przyszłości ustabilizują IDE.


3
Używam Android Studio 2.1 i nadal mam ten sam problem. Jedynym rozwiązaniem było wyłączenie natychmiastowego uruchamiania :(
radu_paun

5
Miej ten problem nawet przy wyłączonym „Instant Run”, dość denerwujący !!! AS 2.1.2. „Czystość” pomaga ...
pvllnspk

1
Jeśli ktoś jeszcze tego szuka, na OS X można go znaleźć podFile -> Preferences -> Build, Execution, Deployment
Gian Luca Scoccia

Myślę, że wyłączenie natychmiastowego uruchamiania nie jest dobrym rozwiązaniem. Ma tak wiele zalet i tylko jeden błąd.
Milad Faridnia

3
Używam Android Studio 3.2 Canary 13 z wyłączonym natychmiastowym uruchamianiem i ten problem nadal występuje.
5

95

EDIT2 (2020-03-09)

Jeśli używasz gradle 6.0 w swoim gradle-wrapper.properties, możesz również spotkać się z podobną sytuacją, ponieważ ten błąd występuje w wersji 6.0. Zamiast tego spróbuj 6.0.1.


Wczoraj (27.03.2018) Android Studio opublikowało oficjalną aktualizację z wersji 3.0.1 do 3.1 i wygląda na to, że wiele osób (w tym ja) ponownie zaczęło napotykać ten problem.

Kredytowej # 5 komentarzu tutaj , poniżej jak to rozwiązać:

W Android Studio przejdź do Run> Edit Configuration.

Pod Before launch:, jeśli nie możesz znaleźć Gradle-aware Make, tak jak poniżej:

wprowadź opis obrazu tutaj

Dodaj Gradle-aware Makei pozostaw Taskpuste.

wprowadź opis obrazu tutaj

Ostrzeżenie : nie wiem, co oznacza to działanie i czy spowoduje jakieś skutki uboczne. Doceń, jeśli ktoś może udzielić więcej wyjaśnień na ten temat!

EDYTOWAĆ

Dzięki odwołaniu @ChristopherSmit ta strona wspomina, że Gradle-aware makeoznacza „Skompiluj projekt i uruchom Gradle”.
Na początku myślę, że może Runto zająć więcej czasu, nawet jeśli żaden kod nie został zmieniony; ale po testach drugi raz jest nadal znacznie szybszy, jeśli żaden kod nie został zmieniony.
Biorąc pod uwagę fakt, że jest to opcja domyślna, jeśli tworzysz nowy projekt w AS 3.1, myślę, że ta konfiguracja jest całkiem bezpieczna.


1
Znajdziesz wyjaśnienie tego tutaj: developer.android.com/studio/run/rundebugconfig.html . W poniższej tabeli „Zdefiniuj operacje przed startem”
Christopher Smit

Dziękuję Ci! Zmarnowałem ponad 24 godziny na naprawianie kodu i zastanawiałem się, dlaczego ta zmiana kodu nie działa. Nie miałem pojęcia, że ​​coś takiego też istnieje.
Bhavesh Bansal

NIE DZIAŁA: Błąd podczas generowania zależności podzielony APK com.android.ide.common.process.ProcessException: Nie udało się wykonać aapt
android51130

1
@ android51130 Właściwie znalazłem „większy post” tutaj . Wydaje się, że wyłączenie natychmiastowego uruchamiania rozwiąże problem.
Sira Lam

@SiraLam „run” działa dobrze z wyłączonym natychmiastowym uruchomieniem, problem polega na tym, że „wtf dzieje się tutaj” z natychmiastowym uruchomieniem w Studio 3.1. Potrzebuję natychmiastowego uruchomienia i ty też :)))
android51130

40

Miałem ten sam problem, używając Android Studio 2.0.0, rozwiązałem go, przebudowując mój projekt.

Build > Rebuild Project

Obraz GUI

lub przez Wyczyść i uruchom ponownie

Run > Clean and Rerun

Wyczyść i uruchom ponownie


Czy muszę to robić za każdym razem, gdy wprowadzam zmiany w moich plikach XML? Jak widzę, ilekroć wprowadzam zmiany w pliku XML animacji. Nie wdraża nowych zmian, dopóki nie
wyczyszczę

w tym problem - trzeba to robić przy każdej zmianie… Google, daj spokój, napraw to gówno - zrób „uruchom”, aby zapisać, zbudować i wdrożyć.
NBApps,

10
2018 - AS 3.2.0 i nadal musimy sobie z tym poradzić
Androiderson

2
Poważnie napotykam ten problem tuż po aktualizacji z AS 3.0 do 3.1. Za każdym razem muszę przebudowywać projekt…
Sira Lam

4
Ten sam problem po aktualizacji AS z 3.0 do 3.1.
Bandzio

11

To był prawdziwy problem, dopóki nie zdałem sobie sprawy, że moje zmiany nie mogą być propagowane we wszystkich odpowiednich plikach ...

Jeśli masz problem z układami, tak jak ja, może się okazać, że musisz zaktualizować układ w folderze res> layout-v17 . Wprowadziłem zmiany za pośrednictwem widoku projektu w folderze układu i początkowo te zmiany wydawały się automatycznie propagowane do layout-v17 . Jednak później zmiany NIE BYŁY.

Sprawdź folder res> layout-v17 i zobacz, czy pliki .xml w tym folderze odzwierciedlają zmiany, które widzisz w folderze res> layout . Prawdopodobnie okaże się, że nie. Napraw to i przeprowadź ponowne wdrożenie. Podobnie jak ja, powinieneś zobaczyć nowe modyfikacje kodu.

Mam nadzieję że to pomoże.


2

Na razie rozwiązałem problem, zamykając aplikację i uruchamiając ją ponownie. Zadziałało jak urok. Nie jestem jeszcze pewien, czy to zbieg okoliczności, ale myślę, że warto spróbować.

Naprawdę zastanawiam się, czy to działa również u innych osób. Spróbujmy i daj mi znać.


W przypadku aplikacji natywnej reagowania rozwiązaniem było zamknięcie i ponowne uruchomienie narzędzia do pakowania reakcji
Mike Lyons,

2

W Android Studio 3.6.3 możesz włączyć automatyczny restart, jeśli natychmiastowe uruchomienie się nie powiedzie.

Po prostu przejdź do Plik | Ustawienia | Kompilacja, wykonanie, wdrożenie | Wdrożenie i zaznacz pola wyboru.

Ustawienia


1

Również ja rozwiązałem to, nie używając funkcji Instant Run. Może nie jest to najlepsze rozwiązanie, ale na razie działa. Używam Android Studio 2.0 beta 2 ...


1
podaj więcej odpowiedzi, aby inni użytkownicy mogli z nich skorzystać ... dodaj krok po kroku itp.
Juan Boero,

4
Ktoś inny już opublikował to jako odpowiedź. Zamiast ponownie publikować, rozważ zagłosowanie za istniejącą odpowiedzią, gdy zdobędziesz wystarczającą liczbę rep.
OhBeWise,

1

Dla mnie natychmiastowy bieg był koszmarem, czas kompilacji 2-5 minut i, co denerwujące, często nie uwzględniał ostatnich zmian w kompilacjach. Bardzo polecam wyłączenie natychmiastowego uruchamiania i dodanie tej linii do gradle.properties:

android.enableBuildCache=true

Pierwsza kompilacja często zajmuje trochę czasu w przypadku dużych projektów (1-2 minuty), ale po zapisaniu w pamięci podręcznej kolejne kompilacje są zwykle szybkie (<10 sekund).

Mam tę wskazówkę od użytkownika reddit / u / PytaniaEverythang, co pozwoliło mi zaoszczędzić TAK wiele kłopotów z natychmiastowym uruchomieniem!


1

Upewnij się, że nie masz alternatywnego układu. Jeśli tak, możesz zmienić jeden i wdrożyć inny.


0

Ten sam problem zaczął się pojawiać po uaktualnieniu buildVersion z 23. Próbowałem usunąć AVD i odtworzyć, zsynchronizować z plikami Gradle. Nic nie pomogło. Całkowita ponowna instalacja Andriod Studio rozwiązała problem. To może nie być rozwiązanie, ale to zadziałało tylko dla mnie.


0

Pomogło mi dodanie złego kodu XML do jednego z moich plików XML układu, próba kompilacji i uzyskanie błędu, a następnie cofnięcie zmiany i ponowne debugowanie. Nie ładnie, ale dość szybko.

Kolejna rzecz, która wydaje się działać przez większość czasu: odłącz i ponownie podłącz telefon / urządzenie programistyczne. Wydaje się, że wymusza to ponowną instalację, przynajmniej na moim komputerze z systemem Linux.


0

Podoba mi się funkcja Instant Run i nie lubię jej wyłączać tylko z powodu tego błędu. Nie jest to rozwiązanie, ale jako lepsze obejście wolałbym:

  1. Naciśnij „Ostatnie aplikacje”
  2. Po prostu zamknij moją aplikację z listy
  3. Uruchom aplikację ponownie

Zajmuje to mniej czasu niż czyszczenie lub odbudowa .

AKTUALIZACJA

Uruchom ponownie aplikację również:

wprowadź opis obrazu tutaj


0

Mam ten sam problem, odznaczyłem natychmiastowe uruchamianie, a także wypróbowałem opcję „wyczyść i uruchom”, ale nie działa. Próbowałem stopniować synchronizację, ale nadal miałem problem. Zostanie rozwiązany tylko wtedy, gdy całkowicie go odbuduję, usuwając folder kompilacji.


0

Miałem ten sam problem, próbowałem wszystkiego, takich jak czyszczenie i przebudowa, synchronizacja stopniowania, a nawet odinstalowywanie i instalowanie aplikacji, ale zauważenie zadziałało. Inne urządzenia działały dobrze, ale w moim telefonie problem nadal występował. Potem zdałem sobie sprawę, że przypadkowo zduplikowałem plik układu layout-v26i robiłem zmiany w tym pliku, dlatego projekt nie był aktualizowany. Więc właśnie usunąłem zduplikowany układ z pliku Project>app>main>res>layout-v26i problem został rozwiązany. Dlatego upewnij się, że nie utworzyłeś żadnego z tych plików bez wiedzy.


-1

Możesz zrozumieć, czy kod jest wdrożony, czy nie, umieszczając punkt przerwania debugowania w nowym dodanym wierszu. Jeśli na punkcie przerwania znajduje się krzyżyk, oznacza to, że nie został wdrożony. Musisz wyczyścić i odbudować projekt.

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.