Lỗi [INSTALL_FAILED_ALREADY_EXISTS] khi tôi cố cập nhật ứng dụng của mình


388

Khi tôi cố cập nhật ứng dụng của mình với phiên bản mới có chữ ký giống như phiên bản trước, sẽ hiển thị lỗi ở trên.

Tôi đang thiếu gì?

Câu trả lời:


756

Nếu bạn cài đặt ứng dụng trên thiết bị của mình thông qua adb installbạ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 -rbạn sẽ có thể cài đặt mà không cần gỡ cài đặt trước.


1
adb install -rkhô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.
jww

21
Tôi đến đây vì tôi muốn biết liệu adb install -rsẽ 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ù adbmô tả của nó không rõ ràng lắm ( -r: thay thế ứng dụng hiện có ), adb install -rnhư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).
Thibault D.

8
Đối với những người tuyên bố adb install -rkhông hoạt động: Tôi đoán rằng .apktệ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ư .apktệ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ỉ.
Thibault D.

1
Nếu bạn sử dụng nhiều tài khoản, bạn có thể phải gỡ cài đặt khỏi tất cả các tài khoản (xem câu trả lời của GregP). Điều này làm việc cho tôi sau khi tôi làm điều đó.
JD Sandifer

không hoạt động, ứng dụng của tôi là một ứng dụng hệ thống và điều này không giải quyết được vấn đề của tôi: /
htafoya

11

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:

  1. Gỡ cài đặt ứng dụng khỏi thiết bị: Truy cập Cài đặt -> Quản lý ứng dụng và chọn Gỡ cài đặt HOẶC
  2. Gỡ cài đặt ứng dụng bằng giao diện dòng lệnh adb: gõ gỡ cài đặt adb Sau khi bạn hoàn thành bước này, hãy thử cài đặt lại ứng dụng.

Ứng dụng của tôi không xuất hiện dưới menu hoặc cửa hàng ứng dụng - nhưng tìm thấy nó nhờ vào mẹo của Muhammad.
DavidP

2
Đây không phải là một giải pháp tốt. Điều gì nếu bạn có một loạt các trạng thái như SharedPrefs được lưu trong ứng dụng? Nếu bạn khó gỡ cài đặt khỏi hệ thống, bạn sẽ phải cấu hình lại ứng dụng của mình một lần nữa!
IgorGanapolsky

Đây là giải pháp tôi cần , 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ó.
JMD

6

Đ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.


Đây là vấn đề chính xác của tôi! Giữ cố gắng gỡ cài đặt - cả với adb và thủ công, nhưng 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!
JD Sandifer

Điều này đã sửa nó cho tôi quá. Để biết thông tin về một thiết bị để hủy cài đặt cho tất cả người dùng, tôi phải truy cập Cài đặt> Ứng dụng, nhấn Ứng dụng, nhấn vào hình elip ở trên cùng bên phải và nhấn Gỡ cài đặt cho tất cả người dùng.
d219

3

Để cài đặt

adb install -r exampleApp.apk

(Làm -rcho nó thay thế bản sao hiện có, thêm một -snế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/releasebiến thể giống nhau

Tặng kem

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)


0

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!


0

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ý.

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.