Android Studio: Bagaimana cara menghapus APK (atau menjalankan perintah adb) secara otomatis sebelum Jalankan atau Debug?

119

Sekarang saya perlu mencopot pemasangan Aplikasi setiap kali sebelumnya Run\Debugdi Android Studio. Karena saya perlu membuat ulang database sebelum menjalankan \ debug aplikasi. Saya tahu saya bisa menjalankan perintah

adb uninstall [package_name]

di terminal untuk menghapus file di bawah /data/data/[package_name]. Tetapi itu bukan cara yang mudah jika saya harus menjalankan perintah setiap saat. Saya berharap

adb uninstall

Perintah dapat dijalankan secara otomatis ketika saya mengklik Run\Debugtombol.

Jagger
sumber
Itu menginstal ulang aplikasi Anda di awal proses "Run" / "Debug", bukan? Atau apakah Anda bermaksud mencopot pemasangan aplikasi lain?
cck3rry
@ cck3rry Maaf, mungkin kurang jelas. Saya ingin menjalankan perintah "adb uninstall" karena saya perlu membuat ulang database sebelum menjalankan / men-debug aplikasi.
Jagger
Mengapa Anda tidak mengambil pendekatan berbeda dan menulis beberapa baris kode yang akan menghapus database di onCreate dari Aktivitas pertama Anda? Anda kemudian dapat membuatnya kembali setelah itu. Ingatlah untuk menghapus blok ini sebelum Anda melepaskannya.
mattgmg1990
@ mattgmg1990 Itu berarti saya perlu menambah / menghapus kode tersebut setiap kali saya melakukan git pull / push. Menyebalkan ...
Jagger
1
Jawaban ini mungkin berguna untuk Anda
PavelGP

Jawaban:

211
adb uninstall <package_name>

dapat digunakan untuk menghapus aplikasi melalui PC Anda. Jika Anda ingin ini terjadi secara otomatis setiap kali Anda meluncurkan aplikasi melalui Android Studio, Anda dapat melakukan ini:

  1. Di Android Studio, klik daftar tarik-turun di sebelah kiri tombol Jalankan, dan pilih Edit konfigurasi ...
  2. Klik aplikasi di bawah Aplikasi Android, dan di Tab Umum, temukan judul 'Sebelum Peluncuran'
  3. Klik tombol +, pilih Jalankan alat eksternal, klik tombol + di jendela munculan.
  4. Beri beberapa nama (misalnya adb uninstall) dan deskripsi, dan ketik adbProgram: dan uninstall <your-package-name>di Parameter :. Pastikan item baru dipilih saat Anda mengklik Ok di jendela popup.

Catatan: Jika Anda tidak memiliki adb dalam variabel lingkungan PATH Anda, berikan jalur lengkap ke adb di bidang Program: (misalnya / home / user / android / sdk / platform-tools / adb).

aravindsagar.dll
sumber
2
beberapa tip / catatan: jika Anda menjalankan lebih dari satu emulator atau perangkat, maka Anda perlu menyertakan adb -s <devicename>. Makro di Android Studio tidak berfungsi dengan baik (v1.50.x), jadi Anda harus memasukkan jalur lengkap untuk adb atau di jalur lingkungan.
Nick
@aravindsagar Saya mencantumkan semua paket perangkat saya dan nama paket aplikasi saya tidak ada di sana tetapi masih menunjukkan Kegagalan [DELETE_FAILED_INTERNAL_ERROR] ada ide mengapa ini terjadi ??
Dinesh Phalwadiya
91

contoh

adb uninstall com.my.firstapp
Thiago
sumber
5
Jika belum tahu nama pakage, tapi punya apknya, bisa mendapatkannya dengan stackoverflow.com/a/37324607/812915
equiman
1
Jika Anda melihat isinya, saya bertanya "uninstall secara otomatis sebelum Debug / Run di Android Studio". Jawaban ini tidak memberikan solusi "otomatis". Kita seharusnya lebih malas, bukan? :)
Jagger
15

Buat daftar paket berdasarkan:

adb shell su 0 pm list packages

Tinjau paket mana yang ingin Anda hapus instalannya dan salin nama paket dari sana. Sebagai contoh:

com.android.calculator2

Ketik terakhir:

adb uninstall com.android.calculator2 

dan kamu selesai.

kamran khader
sumber
4
Untuk orang-orang yang tidak di-rooting, hilangkan su 0dari perintah list packages.
villecoder
12

Saya menggunakan Android Studio 2.1.2. Saya memiliki persyaratan yang sama dengan OP. Meskipun dua jawaban di atas tampaknya membantu semua orang, itu tidak berhasil untuk saya. Saya membagikan apa yang berhasil untuk saya.

Pergi ke main menu/Run/Edit Configuration. Pilih di appbawah Android Applicationdi sebelah kiri. Ini akan membuka panel multi-tab. Pilih Generaltab (akan menjadi default), klik hijau +bernyanyi di bagian bawah (di bawah teks Before launch: Gradle -awake ...).

Sebuah drop down akan muncul, pilih Gradle-aware-makeopsi. Kotak teks lain akan muncul. masukkan ke :app:uninstallAlldalam kotak teks ini. (Anda dapat menggunakan ctrl+ spaceuntuk menggunakan pelengkapan otomatis untuk menentukan target yang tepat tanpa mengetik semuanya. Dan juga membantu Anda memilih nama aplikasi yang tepat yang tersedia untuk Anda). dan set apply/ok. Luncurkan ulang aplikasi Anda.

Catatan: Setiap kali Anda meluncurkan aplikasi Anda sekarang, target baru ini akan mencoba mencopot pemasangan aplikasi Anda dari emulator atau perangkat Anda. Jadi, jika perangkat pengujian Anda tidak tersedia, launc Anda mungkin akan gagal saat mencopot pemasangan tetapi akan terus memulai emulator Anda. Jadi, mulai emulator Anda terlebih dahulu, atau lauch ulang setelah gagal pertama lagi (karena peluncuran pertama akan memulai emulator meskipun penginstalan gagal).

Jimmy
sumber
1
Ini berfungsi dengan baik, tetapi Anda perlu mengganti appdengan nama modul Anda yang sebenarnya, seperti myMainApp.
Jimbali
1
ya, cukup gunakan ctrl+ spacepada munculan untuk menggunakan pelengkapan otomatis. Ini juga menentukan aplikasi.
Jimmy
11

Jika Anda ingin menghapus instalan saat terhubung ke satu perangkat / emulator, gunakan perintah di bawah ini

adb uninstall <package name>

lain dengan beberapa perangkat kemudian gunakan perintah di bawah ini

adb -s <device ID> uninstall <package name>
summerGhost
sumber
4

Saya menggunakan plugin Android Studio yang disebut "adb idea" - memiliki menu drop-down untuk berbagai fungsi (Uninstall, Kill, Start, dll) yang dapat Anda targetkan di perangkat yang terhubung atau disimulasikan. Orang dapat berargumen bahwa itu membuat saya selangkah lagi untuk memiliki pemahaman yang lebih dalam tentang kekuatan perintah adb dan saya mungkin setuju .... meskipun saya sebenarnya beroperasi pada tingkat pemahaman yang lebih rendah, jadi bagi saya itu membantu untuk memilikinya seorang pembantu. Ide ADB masukkan deskripsi gambar di sini

Joel Butler
sumber
3

Proses tiga langkah sederhana (diperiksa di terminal mac)

  1. Hubungkan perangkat android Anda (harap hubungkan 1 Perangkat android pada satu waktu), sebaiknya dengan kabel & Konfirmasikan koneksi oleh (ini akan mencantumkan ID perangkat ID Perangkat)

    adb devices
  2. Kemudian untuk mendaftar semua paket aplikasi pada perangkat yang terhubung dengan menjalankan, di terminal

    adb shell pm list packages -f -3 
  3. Kemudian uninstall seperti yang dijelaskan sebelumnya

    adb uninstall <package_name> 
eaccmk.dll
sumber
0

Perintah ini dengan --user 0 melakukan pekerjaan:

adb uninstall --user 0 <package_name>
Rodolfo Jorge Nemer Nogueira
sumber