Câu trả lời:
Nếu bạn cài đặt ứng dụng trên thiết bị của mình thông qua adb install
bạn nên tìm tùy chọn cài đặt lại -r
. Vì vậy, nếu bạn làm, adb install -r
bạn sẽ có thể cài đặt mà không cần gỡ cài đặt trước.
adb install -r
sẽ gỡ bỏ trước và sau đó cài đặt hoặc nâng cấp ứng dụng của mình. Mặc dù adb
mô tả của nó không rõ ràng lắm ( -r: thay thế ứng dụng hiện có ), adb install -r
nhưng thực sự nâng cấp ứng dụng của bạn và không xóa dữ liệu ứng dụng của bạn. Do đó, phù hợp để kiểm tra nâng cấp ứng dụng của bạn (đó là thông tin tôi đang tìm kiếm).
adb install -r
không hoạt động: Tôi đoán rằng .apk
tệp bạn đang cố cài đặt không được ký với cùng chứng chỉ nhà phát triển như .apk
tệp được cài đặt trên thiết bị. Dễ dàng xảy ra nếu bạn đã cài đặt ứng dụng Gỡ lỗi và sau đó đang cố gắng cài đặt ứng dụng Phát hành hoặc cách khác. Bạn không thể cập nhật một ứng dụng nếu nó không được ký với cùng một chứng chỉ.
Bạn đang gặp phải lỗi đó vì một ứng dụng có tên gói giống như ứng dụng của bạn đã tồn tại. Nếu bạn chắc chắn rằng bạn chưa cài đặt cùng một ứng dụng trước đó, hãy thay đổi tên gói và thử.
Khác, khôn ngoan, đây là những gì bạn có thể làm:
adb uninstall my.package
. Điều kỳ lạ là nó đã không gỡ cài đặt các prefs mà tôi muốn xóa, nhưng nó đã thoát khỏi gói, đó là thứ ngăn tôi cài đặt lại nó.
Điều đó có nghĩa là ứng dụng đã được cài đặt cho người dùng khác trên thiết bị của bạn. Người dùng chia sẻ ứng dụng. Tôi không biết tại sao họ làm nhưng họ làm. Vì vậy, nếu một người dùng cập nhật, một ứng dụng cũng được cập nhật cho người dùng khác. Nếu bạn gỡ cài đặt trên một, nó sẽ không xóa ứng dụng khỏi hệ thống khác.
adb install <package.apk>
vẫn thất bại mặc dù ứng dụng không còn hiển thị trong danh sách ứng dụng. Hóa ra nó vẫn còn trên tài khoản khác trên thiết bị của tôi ... Cảm ơn!
adb install -r exampleApp.apk
(Làm -r
cho nó thay thế bản sao hiện có, thêm một -s
nếu cài đặt trên trình giả lập)
Đảm bảo ứng dụng được ký giống nhau và là debug/release
biến thể giống nhau
Tôi thiết lập một bí danh trong tôi ~/.bash_profile
, để biến nó thành lệnh 2char.
alias bi="gradlew && adb install -r exampleApp.apk"
(Viết tắt của Build and Install)
Nếu bạn vẫn gặp vấn đề thì hãy thử gỡ cài đặt ứng dụng bằng dấu nhắc lệnh. chỉ cần thêm lệnh adb uninstall com.example.yourpackagename
sau đó thử cài đặt lại. Nó hoạt động!
Với máy tính bảng Android 5 của tôi, mỗi lần tôi cố gắng sử dụng adb, để cài đặt apk phát hành đã ký, tôi đều gặp [INSTALL_FAILED_ALREADY_EXISTS]
lỗi.
Tôi phải gỡ cài đặt gói gỡ lỗi trước. Nhưng, tôi không thể gỡ cài đặt bằng Trình quản lý ứng dụng của thiết bị !
Nếu gỡ cài đặt phiên bản gỡ lỗi bằng Trình quản lý ứng dụng , thì tôi phải chạy lại biến thể xây dựng gỡ lỗi từ Android Studio, sau đó gỡ cài đặt nó bằngadb uninstall com.example.mypackagename
Cuối cùng, tôi có thể sử dụng adb install myApp.apk
để cài đặt apk phát hành đã ký.
adb install -r
không phải lúc nào cũng hoạt động (Tôi đã có EVO 4G từ Sprint từ chối hoạt động như mong đợi). Công việc duy nhất xung quanh tôi tìm thấy là gỡ bỏ ứng dụng theo cách thủ công. Đôi khi, tôi thậm chí phải làm điều đó thông qua giao diện người dùng điện thoại vì EVO rất nóng tính.