Android Studio: come disinstallare automaticamente APK (o eseguire il comando adb) prima di eseguire o eseguire il debug?


119

Ora devo disinstallare l'app ogni volta prima Run\Debugin Android Studio. Perché ho bisogno di ricreare il database prima di eseguire \ eseguire il debug dell'app. So di poter eseguire il comando

adb uninstall [package_name]

nel terminale per cancellare i file sotto /data/data/[package_name]. Ma non è un modo conveniente se devo eseguire il comando ogni volta. Spero che il

adb uninstall

comando può essere eseguito automaticamente quando clicco sul Run\Debugpulsante.


Ha reinstallato la tua app all'inizio del processo "Esegui" / "Debug", vero? O intendi disinstallare un'altra app?
cck3rry

@ cck3rry Scusa, forse non è molto chiaro. Voglio eseguire il comando "adb uninstall" perché ho bisogno di ricreare il database prima di eseguire / eseguire il debug dell'app.
Jagger

Perché non adotti un approccio diverso e scrivi alcune righe di codice che cancelleranno il database in onCreate della tua prima attività? Puoi quindi ricrearlo dopo. Ricorda solo di eliminare questo blocco prima di rilasciarlo.
mattgmg1990

@ mattgmg1990 Ciò significa che devo aggiungere / rimuovere tale codice ogni volta che eseguo git pull / push. Che dolore ...
Jagger

1
Questa risposta potrebbe esserti utile
PavelGP

Risposte:


211
adb uninstall <package_name>

può essere utilizzato per disinstallare un'app tramite il PC. Se vuoi che ciò avvenga automaticamente ogni volta che avvii la tua app tramite Android Studio, puoi farlo:

  1. In Android Studio, fai clic sull'elenco a discesa a sinistra del pulsante Esegui e seleziona Modifica configurazioni ...
  2. Fare clic sull'app in Applicazione Android e nella scheda Generale, trovare l'intestazione "Prima del lancio"
  3. Fare clic sul pulsante +, selezionare Esegui strumento esterno, fare clic sul pulsante + nella finestra popup.
  4. Assegna un nome (es. Adb uninstall) e una descrizione, quindi digita adbProgram: e uninstall <your-package-name>Parameters :. Assicurati che il nuovo elemento sia selezionato quando fai clic su OK nella finestra popup.

Nota: se non hai adb nella variabile d'ambiente PATH, dai il percorso completo ad adb nel campo Program: (ad esempio / home / user / android / sdk / platform-tools / adb).


2
alcuni suggerimenti / note: se stai utilizzando più di un emulatore o dispositivo, allora vorrai includere adb -s <devicename>. Le macro in Android Studio non funzionano correttamente (v1.50.x), quindi devi inserire il percorso completo per adb o nel percorso dell'ambiente.
Nick

@aravindsagar Ho elencato tutti i pacchetti del mio dispositivo e il nome del pacchetto della mia app non era presente, ma mostra ancora Errore [DELETE_FAILED_INTERNAL_ERROR] qualche idea del perché sta accadendo ??
Dinesh Phalwadiya

91

esempio

adb uninstall com.my.firstapp

5
Se non si conosce il nome pakage, ma hanno l'apk, può ottenere con questo stackoverflow.com/a/37324607/812915
equiman

1
Se dai un'occhiata al contenuto, ti chiedevo "disinstalla automaticamente prima di eseguire il debug / eseguire in Android Studio". Questa risposta non ha fornito una soluzione "automatica". Dovremmo essere più pigri, giusto? :)
Jagger

15

Elenca i pacchetti per:

adb shell su 0 pm list packages

Controlla quale pacchetto desideri disinstallare e copia il nome del pacchetto da lì. Per esempio:

com.android.calculator2

Infine digita:

adb uninstall com.android.calculator2 

e hai finito.


4
Per le persone non root, ometti su 0dal comando list packages.
villecoder

12

Sto usando Android Studio 2.1.2. Avevo gli stessi requisiti di OP. Sebbene le due risposte sopra sembrassero aiutare tutti, non ha funzionato per me. Condivido ciò che ha funzionato per me.

Vai a main menu/Run/Edit Configuration. Seleziona appsotto Android Applicationa sinistra. Questo dovrebbe aprire il riquadro a più schede. Seleziona la Generalscheda (sarebbe l'impostazione predefinita), fai clic su +canta verde in basso (sotto il testo Before launch: Gradle -awake ...).

Apparirà un menu a tendina, seleziona l' Gradle-aware-makeopzione. Apparirà un'altra casella di testo. inserisci :app:uninstallAllin questa casella di testo. (Puoi usare ctrl+ spaceper utilizzare il completamento automatico per determinare il target corretto senza digitare tutto. E ti aiuta anche a scegliere il nome giusto dell'app disponibile per te). e impostareapply/ok . Riavvia la tua app.

Nota: ogni volta che avvii la tua app ora, questo nuovo target proverà a disinstallare la tua app dal tuo emulatore o dispositivo. Quindi, se il tuo dispositivo di prova non è disponibile, il tuo lancio probabilmente fallirà durante la disinstallazione ma continuerà ad avviare l'emulatore. Quindi avvia prima l'emulatore o riavvia dopo il primo errore (poiché il primo avvio avvierà l'emulatore anche se la disinstallazione non riesce).


1
Funziona bene, ma devi sostituirlo appcon il nome del tuo modulo attuale, come myMainApp.
Jimbali

1
sì, basta usare ctrl+ spacesul popup per utilizzare il completamento automatico. Determina anche l'app.
Jimmy

11

Se si desidera disinstallare quando si è connessi a un singolo dispositivo / emulatore, utilizzare il comando seguente

adb uninstall <package name>

altrimenti con più dispositivi quindi utilizzare il comando seguente

adb -s <device ID> uninstall <package name>

4

Uso un plug-in di Android Studio chiamato "adb idea" - ha un menu a discesa per varie funzioni (Disinstalla, Kill, Start, ecc.) Che puoi indirizzare a qualsiasi dispositivo connesso o simulato. Si potrebbe obiettare che mi ci vuole un passo dall'avere una comprensione più profonda della potenza dei comandi adb e probabilmente sarei d'accordo ... anche se sto davvero operando a un livello di comprensione inferiore comunque, quindi per me aiuta avere un aiutante. Idea di ADB inserisci qui la descrizione dell'immagine


3

Un semplice processo in tre fasi (verificato sul terminale Mac)

  1. Collega il tuo dispositivo Android (collega 1 dispositivo Android alla volta), preferibilmente tramite un cavo e conferma la connessione tramite (questo elencherà l'ID dispositivo ID dispositivo)

    adb devices
  2. Quindi per elencare tutti i pacchetti dell'app sul dispositivo connesso eseguendo, sul terminale

    adb shell pm list packages -f -3 
  3. Quindi disinstallare come spiegato in precedenza

    adb uninstall <package_name> 

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.