Android Studio: Làm cách nào để tự động gỡ cài đặt APK (hoặc thực thi lệnh adb) trước khi Chạy hoặc Gỡ lỗi?


119

Bây giờ, tôi cần gỡ cài đặt Ứng dụng mọi lúc trước khi Run\Debugcó trong Android Studio. Vì tôi cần tạo lại cơ sở dữ liệu trước khi chạy \ gỡ lỗi ứng dụng. Tôi biết tôi có thể chạy lệnh

adb uninstall [package_name]

trong thiết bị đầu cuối để xóa các tệp bên dưới /data/data/[package_name]. Nhưng nó không phải là cách thuận tiện nếu tôi phải thực hiện lệnh mỗi lần. tôi hy vọng rằng

adb uninstall

lệnh có thể được thực hiện tự động khi tôi nhấp vào Run\Debugnút.


Nó đã cài đặt lại ứng dụng của bạn khi bắt đầu quá trình "Run" / "Debug", phải không? Hay bạn muốn gỡ cài đặt một ứng dụng khác?
cck3rry

@ cck3rry Xin lỗi, có lẽ nó không rõ ràng lắm. Tôi muốn thực thi lệnh "gỡ cài đặt adb" vì tôi cần tạo lại cơ sở dữ liệu trước khi chạy / gỡ lỗi ứng dụng.
Jagger

Tại sao bạn không thực hiện một cách tiếp cận khác và viết một vài dòng mã sẽ xóa cơ sở dữ liệu trong onCreate của Hoạt động đầu tiên của bạn? Sau đó, bạn có thể tạo lại nó sau đó. Chỉ cần nhớ xóa khối này trước khi bạn phát hành.
mattgmg1990

@ mattgmg1990 Điều đó có nghĩa là tôi cần thêm / xóa mã như vậy mỗi khi thực hiện git pull / push. Thật là một nỗi đau ...
Jagger

1
Câu trả lời này có thể hữu ích cho bạn
PavelGP

Câu trả lời:


211
adb uninstall <package_name>

có thể được sử dụng để gỡ cài đặt ứng dụng qua PC của bạn. Nếu bạn muốn điều này tự động xảy ra mỗi khi bạn khởi chạy ứng dụng của mình qua Android Studio, bạn có thể thực hiện việc này:

  1. Trong Android Studio, nhấp vào danh sách thả xuống ở bên trái của nút Chạy và chọn Chỉnh sửa cấu hình ...
  2. Nhấp vào ứng dụng trong Ứng dụng Android và trong Tab Chung, tìm tiêu đề 'Trước khi khởi chạy'
  3. Nhấp vào nút +, chọn Chạy công cụ bên ngoài, nhấp vào nút + trong cửa sổ bật lên.
  4. Đưa ra một số tên (Ví dụ: gỡ cài đặt adb) và mô tả, và nhập adbChương trình: và uninstall <your-package-name>trong Tham số :. Đảm bảo rằng mục mới được chọn khi bạn nhấp vào Ok trong cửa sổ bật lên.

Lưu ý: Nếu bạn không có adb trong biến môi trường PATH của mình, hãy cung cấp đường dẫn đầy đủ đến adb trong trường Program: (ví dụ: / home / user / android / sdk / platform-tools / adb).


2
một số mẹo / lưu ý: nếu bạn đang chạy nhiều trình mô phỏng hoặc thiết bị, thì bạn sẽ muốn bao gồm adb -s <devicename>. Macro trong Android Studio không hoạt động bình thường (v1.50.x), vì vậy bạn phải đặt đường dẫn đầy đủ cho adb hoặc đường dẫn trong môi trường.
Nick

@aravindsagar Tôi đã liệt kê tất cả các gói thiết bị của mình và tên gói ứng dụng của tôi không có ở đó nhưng vẫn hiển thị Lỗi [DELETE_FAILED_INTERNAL_ERROR] bất kỳ ý kiến ​​nào tại sao điều này lại xảy ra ??
Dinesh Phalwadiya

91

thí dụ

adb uninstall com.my.firstapp

5
Nếu bạn không biết tên pakage, nhưng có apk, có thể tải nó bằng stackoverflow.com/a/37324607/812915
equiman

1
Nếu bạn đã xem nội dung, tôi đã hỏi "tự động gỡ cài đặt trước khi Gỡ lỗi / Chạy trong Android Studio". Câu trả lời này không đưa ra giải pháp "tự động". Chúng ta nên lười biếng hơn, phải không? :)
Jagger

15

Liệt kê các gói theo:

adb shell su 0 pm list packages

Xem lại gói nào bạn muốn gỡ cài đặt và sao chép tên gói từ đó. Ví dụ:

com.android.calculator2

Cuối cùng nhập:

adb uninstall com.android.calculator2 

và bạn đã hoàn thành.


4
Đối với những người chưa root, hãy bỏ qua su 0lệnh gói danh sách.
villecoder

12

Tôi đang sử dụng Android Studio 2.1.2. Tôi đã có yêu cầu tương tự như OP. Mặc dù hai câu trả lời trên dường như hữu ích cho tất cả mọi người, nhưng nó không hiệu quả với tôi. Tôi đang chia sẻ những gì đã làm việc cho tôi.

Đi tới main menu/Run/Edit Configuration. Chọn appbên dưới Android Applicationbên trái để mở ngăn nhiều tab. Chọn Generaltab (sẽ là mặc định), nhấp vào +hát màu xanh lá cây ở dưới cùng (văn bản bên dưới Before launch: Gradle -awake ...).

Một trình đơn thả xuống sẽ xuất hiện, chọn Gradle-aware-maketùy chọn. Một hộp văn bản khác sẽ bật lên. nhập :app:uninstallAllvào hộp văn bản này. (Bạn có thể sử dụng ctrl+ spaceđể sử dụng tính năng tự động hoàn thành để xác định đúng mục tiêu mà không cần nhập mọi thứ. Và cũng giúp bạn chọn đúng tên ứng dụng có sẵn cho bạn). và thiết lập apply/ok. Khởi chạy lại ứng dụng của bạn.

Lưu ý: Mỗi khi bạn khởi chạy ứng dụng của mình ngay bây giờ, mục tiêu mới này sẽ cố gắng gỡ cài đặt ứng dụng khỏi trình mô phỏng hoặc thiết bị của bạn. Vì vậy, nếu thiết bị thử nghiệm của bạn không khả dụng, trình khởi chạy của bạn có thể sẽ không thành công khi gỡ cài đặt nhưng sẽ tiếp tục khởi động trình mô phỏng của bạn. Vì vậy, hãy khởi động trình mô phỏng của bạn trước hoặc lauch lại sau lần đầu tiên bị lỗi (vì lần khởi chạy đầu tiên sẽ bắt đầu trình mô phỏng mặc dù gỡ cài đặt không thành công).


1
Điều này hoạt động tốt, nhưng bạn cần phải thay thế appbằng tên của mô-đun thực tế của bạn, chẳng hạn như myMainApp.
Jimbali

1
yup, chỉ cần sử dụng ctrl+ spacetrên cửa sổ bật lên để sử dụng tính năng tự động hoàn thành. Nó cũng xác định ứng dụng.
Jimmy

11

Nếu bạn muốn gỡ cài đặt khi được kết nối với một thiết bị / trình giả lập, hãy sử dụng lệnh bên dưới

adb uninstall <package name>

khác với nhiều thiết bị thì sử dụng lệnh bên dưới

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

4

Tôi sử dụng plugin Android Studio có tên "adb idea" - có menu thả xuống cho các chức năng khác nhau (Gỡ cài đặt, Hủy, Bắt đầu, v.v.) mà bạn có thể nhắm mục tiêu trên bất kỳ thiết bị được kết nối hoặc mô phỏng nào. Người ta có thể tranh luận rằng tôi phải mất một bước để hiểu sâu hơn về sức mạnh của các lệnh adb và tôi có thể đồng ý .... mặc dù tôi thực sự đang hoạt động ở mức độ hiểu biết thấp hơn, vì vậy đối với tôi, nó sẽ giúp có một người trợ giúp. Ý tưởng ADB nhập mô tả hình ảnh ở đây


3

Quy trình ba bước đơn giản (được kiểm tra trên thiết bị đầu cuối mac)

  1. Kết nối thiết bị Android của bạn (vui lòng kết nối 1 Thiết bị android tại một thời điểm), tốt nhất là bằng cáp & Xác nhận kết nối bằng (điều này sẽ liệt kê ID thiết bị ID của Thiết bị)

    adb devices
  2. Sau đó, liệt kê tất cả các gói ứng dụng trên thiết bị được kết nối bằng cách chạy, trên thiết bị đầu cuối

    adb shell pm list packages -f -3 
  3. Sau đó gỡ cài đặt như đã giải thích trước đó

    adb uninstall <package_name> 

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.