Android Studio: Jak automatycznie odinstalować APK (lub wykonać polecenie adb) przed uruchomieniem lub debugowaniem?

119

Teraz muszę za każdym razem odinstalować aplikację Run\Debugw Android Studio. Ponieważ muszę ponownie utworzyć bazę danych, zanim uruchomię \ debugowanie aplikacji. Wiem, że mogę uruchomić polecenie

adb uninstall [package_name]

w terminalu, aby wyczyścić pliki w ramach /data/data/[package_name]. Ale nie jest to wygodny sposób, jeśli za każdym razem muszę wykonywać polecenie. Mam nadzieję, że

adb uninstall

Polecenie może być wykonane automatycznie po kliknięciu Run\Debugprzycisku.

Radełko
źródło
Aplikacja została ponownie zainstalowana na początku procesu „Uruchom” / „Debuguj”, prawda? A może chcesz odinstalować inną aplikację?
cck3rry
@ cck3rry Przepraszamy, może nie jest to zbyt jasne. Chcę wykonać polecenie „Odinstaluj adb”, ponieważ przed uruchomieniem / debugowaniem aplikacji muszę ponownie utworzyć bazę danych.
Jagger
Dlaczego nie wybierzesz innego podejścia i nie napiszesz kilku wierszy kodu, który usunie bazę danych w onCreate of your first Activity? Następnie możesz go odtworzyć. Pamiętaj tylko, aby usunąć ten blok przed zwolnieniem.
mattgmg1990
@ mattgmg1990 Oznacza to, że muszę dodawać / usuwać taki kod za każdym razem, gdy robię git pull / push. Co za ból ...
Jagger
1
Ta odpowiedź może być przydatna dla Ciebie
PavelGP

Odpowiedzi:

211
adb uninstall <package_name>

można użyć do odinstalowania aplikacji za pośrednictwem komputera. Jeśli chcesz, aby działo się to automatycznie przy każdym uruchomieniu aplikacji przez Android Studio, możesz to zrobić:

  1. W Android Studio kliknij listę rozwijaną po lewej stronie przycisku Uruchom i wybierz Edytuj konfiguracje ...
  2. Kliknij aplikację w aplikacji Android i na karcie Ogólne znajdź nagłówek „Przed uruchomieniem”
  3. Kliknij przycisk +, wybierz Uruchom narzędzie zewnętrzne, kliknij przycisk + w wyskakującym okienku.
  4. Podaj nazwę (np. Deinstalacja adb) i opis, a następnie wpisz adbProgram: i uninstall <your-package-name>Parametry :. Upewnij się, że nowy element jest zaznaczony po kliknięciu OK w wyskakującym okienku.

Uwaga: Jeśli nie masz adb w zmiennej środowiskowej PATH, podaj pełną ścieżkę do adb w polu Program: (np. / Home / user / android / sdk / platform-tools / adb).

aravindsagar
źródło
2
kilka wskazówek / uwag: jeśli używasz więcej niż jednego emulatora lub urządzenia, będziesz chciał dołączyć adb -s <nazwa urządzenia>. Makra w Android Studio nie działają poprawnie (v1.50.x), więc musisz podać pełną ścieżkę do adb lub w ścieżce środowiskowej.
Nick
@aravindsagar Wyświetliłem listę wszystkich pakietów mojego urządzenia i nie było tam nazwy pakietu mojej aplikacji, ale nadal jest wyświetlany błąd [DELETE_FAILED_INTERNAL_ERROR] jakiś pomysł, dlaczego tak się dzieje?
Dinesh Phalwadiya
to nie pozwala pozbyć się preinstalowanych aplikacji, prawda?
Abhimanyu Aryan
91

przykład

adb uninstall com.my.firstapp
Thiago
źródło
5
Jeśli nie znasz nazwy pakietu, ale masz apk, możesz go pobrać za pomocą tego stackoverflow.com/a/37324607/812915
equiman
1
Jeśli spojrzałeś na zawartość, pytałem "automatycznie odinstaluj przed debugowaniem / uruchomieniem w Android Studio". Ta odpowiedź nie daje rozwiązania „automatycznie”. Powinniśmy być bardziej leniwi, prawda? :)
Jagger
15

Wypisz paczki według:

adb shell su 0 pm list packages

Sprawdź, który pakiet chcesz odinstalować, i skopiuj stamtąd nazwę pakietu. Na przykład:

com.android.calculator2

Na koniec wpisz:

adb uninstall com.android.calculator2 

i gotowe.

kamran khader
źródło
4
Dla osób niezrootowanych pomiń su 0polecenie na liście pakietów.
villecoder
12

Używam Android Studio 2.1.2. Miałem takie same wymagania jak OP. Chociaż powyższe dwie odpowiedzi zdawały się pomagać wszystkim, nie zadziałały. Dzielę się tym, co zadziałało dla mnie.

Idź do main menu/Run/Edit Configuration. Wybierz appponiżej Android Applicationpo lewej stronie. Powinno to otworzyć panel z wieloma kartami. Wybierz Generalzakładkę (domyślna), kliknij zielony +znak na dole (pod tekstem Before launch: Gradle -awake ...).

Pojawi się menu rozwijane, wybierz Gradle-aware-makeopcję. Pojawi się kolejne pole tekstowe. wprowadź :app:uninstallAllw tym polu tekstowym. (Możesz użyć ctrl+, spaceaby użyć autouzupełniania, aby określić właściwy cel bez wpisywania wszystkiego. A także pomaga wybrać odpowiednią nazwę aplikacji, która jest dostępna dla Ciebie). i ustaw apply/ok. Uruchom ponownie aplikację.

Uwaga: za każdym razem, gdy teraz uruchomisz aplikację, ten nowy cel spróbuje odinstalować aplikację z emulatora lub urządzenia. Jeśli więc urządzenie testujące nie jest dostępne, program uruchamiający prawdopodobnie zakończy się niepowodzeniem podczas odinstalowywania, ale nadal będzie uruchamiać emulator. Więc albo najpierw uruchom emulator, albo uruchom ponownie po pierwszym niepowodzeniu (ponieważ pierwsze uruchomienie uruchomi emulator, chociaż dezinstalacja nie powiedzie się).

Jimmy
źródło
1
Działa to ładnie, ale musisz zastąpić appnazwę swojego rzeczywistego modułu, na przykład myMainApp.
Jimbali,
1
tak, po prostu użyj ctrl+ spacew wyskakującym okienku, aby użyć autouzupełniania. Określa również aplikację.
Jimmy,
11

Jeśli chcesz odinstalować po podłączeniu do jednego urządzenia / emulatora, użyj poniższego polecenia

adb uninstall <package name>

w innym przypadku z wieloma urządzeniami użyj poniższego polecenia

adb -s <device ID> uninstall <package name>
summerGhost
źródło
4

Używam wtyczki Android Studio o nazwie „adb idea” - ma rozwijane menu dla różnych funkcji (Odinstaluj, Zabij, Uruchom itp.), Które możesz kierować na dowolne podłączone lub symulowane urządzenie. Można argumentować, że zajmuje mi to krok od głębszego zrozumienia mocy poleceń adb i prawdopodobnie bym się z tym zgodził ... chociaż i tak naprawdę działam na niższym poziomie zrozumienia, więc dla mnie dobrze jest mieć pomocnik. Pomysł ADB wprowadź opis obrazu tutaj

Joel Butler
źródło
3

Prosty, trzystopniowy proces (sprawdzany na terminalu Mac)

  1. Podłącz urządzenie z systemem Android (podłącz 1 urządzenie z systemem Android na raz), najlepiej za pomocą kabla i potwierdź połączenie przez (wyświetli się identyfikator urządzenia ID urządzenia)

    adb devices
  2. Następnie wyświetl listę wszystkich pakietów aplikacji na podłączonym urządzeniu, uruchamiając na terminalu

    adb shell pm list packages -f -3 
  3. Następnie odinstaluj, jak wyjaśniono wcześniej

    adb uninstall <package_name> 
eaccmk
źródło
1

To polecenie z --user 0 wykonuje zadanie:

adb uninstall --user 0 <package_name>
Rodolfo Jorge Nemer Nogueira
źródło