INSTALL_FAILED_UPDATE_INCOMPATIBLE khi tôi cố gắng cài đặt .apk đã biên dịch trên thiết bị


291

Tôi đã biên dịch trình khởi chạy Trebuchet từ CyanogenMod 9 và cố gắng cài đặt nó với adb:

$ adb install out/target/product/generic/system/app/Trebuchet.apk
3986 KB/s (7870141 bytes in 1.928s)
    pkg: /data/local/tmp/Trebuchet.apk
Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

Tôi đã thử trên Nexus S với CM9 và Galaxy Nexus với chứng khoán JB. Tại sao tôi nhận được lỗi này?

EDIT: Trong trường hợp của tôi, tôi đã cố gắng cài đặt lại gói hệ thống với trình quản lý gói. Điều đó không được hỗ trợ, vì vậy tôi đã gặp lỗi này. Nguồn của lỗi có thể khác nhau trong trường hợp của bạn.


2
trên một số thiết bị mới nhất có nhiều cơ sở người dùng, hãy kiểm tra xem ứng dụng có được cài đặt cho người dùng khác không (tức là đăng nhập của khách). Một người thử nghiệm trong công ty của tôi đã phải vật lộn với vấn đề này hàng giờ, khi anh ta đến gặp tôi, tôi cũng mất 5-10 phút để phát hiện ra rằng ứng dụng tương tự đã được cài đặt dưới tên đăng nhập của khách khác trong thiết bị đó, vì vậy không phải vậy được hiển thị trên màn hình chính hoặc thậm chí không có trong cài đặt
Shirish Herwade

Câu trả lời:


500

nó có nghĩa là ứng dụng bạn muốn cài đặt đã được cài đặt. chỉ cần loại bỏ cái cũ và thử lại.


27
Làm việc cho tôi, nhưng tôi cũng phải khởi động lại một lần nữa.
droidgren

28
Tôi đã phải vào Cài đặt -> Quản lý ứng dụng để tìm ứng dụng và chọn Gỡ cài đặt ứng dụng từ đó vì nó không hiển thị ở nơi khác.
David Conlisk

23
Cũng có thể yêu cầu bạn gỡ cài đặt khỏi tất cả các tài khoản người dùng (Nexus 10 của tôi có 3 người dùng).
Tyler Kiser

1
@TylerKiser Cảm ơn bạn đã ủng hộ cái đó.
Jacob Holloway

1
Điều gì xảy ra nếu tôi chỉ cố gắng cập nhật một ứng dụng hiện có? điều này sẽ xóa mọi thứ mà ứng dụng cuối cùng của tôi được lưu cục bộ
miracle-doh

184

Thử

adb uninstall package-name

Nó làm việc cho tôi. Tôi đã xóa ứng dụng của mình bằng Titanium Backup. Tuy nhiên, tôi nghĩ rằng sao lưu Titanium đã không xóa ứng dụng của tôi hoàn toàn.


1
Tôi nhận thấy điều tương tự khi sử dụng DevDrawer. Điều này đã làm việc.
tir38

1
Cảm ơn! Điều này đã cứu tôi khỏi một cơn đau đầu lớn không thể giải thích được. Không chắc chắn làm thế nào tôi có được trạng thái này ... Tôi đang gỡ lỗi một ứng dụng trong Xamarin Studio và Visual Studio và nó hoạt động tốt cho đến khi nó không ... ồ tốt.
Jamie

1
Khi tất cả những câu trả lời khác được chấp nhận đều thất bại ... điều này đã có hiệu quả.
DennisWelu

Tuyệt quá! Đơn giản và dễ dàng. Không cần phải khởi động lại với giải pháp này.
taciosd

Nó làm việc cho tôi. Trước khi tôi thử gỡ cài đặt thủ công và khởi động lại và không có gì thay đổi, chỉ với lệnh adb, nó hoạt động. Cảm ơn bạn.
ricky.tribbia

101

Gỡ cài đặt ứng dụng sẽ đủ để tránh vấn đề này.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

nhưng đôi khi ngay cả việc gỡ cài đặt tin nhắn cũng được đưa ra một lần nữa, nó xảy ra trong HĐH Android 5.0 +, vì vậy đây là giải pháp:

Truy cập Settings> Appsvà bạn sẽ tìm thấy ứng dụng của mình với thông báo:

"Không được cài đặt cho người dùng này" nhập mô tả hình ảnh ở đây

Chúng tôi phải gỡ cài đặt thủ công cho tất cả người dùng!, Sau đó chúng tôi có thể cài đặt ứng dụng đã biên dịch của mình mà không gặp vấn đề gì.

nhập mô tả hình ảnh ở đây

Một lựa chọn khác:

  • Gỡ bỏ ứng dụng cũ và cài đặt lại.
  • Sử dụng lệnh Cầu gỡ lỗi Android:

    gỡ cài đặt adb [TÊN GÓI]


2
Cảm ơn bạn! Đây là những gì tôi cần. Tại sao và khi nào họ bắt đầu làm theo cách này?
Nick

rõ ràng kể từ OS 5.0 +
Jorgesys

1
Ban đầu, tôi không thể tìm thấy ứng dụng đã gỡ cài đặt của mình trong Cài đặt -> Ứng dụng. Hóa ra trong Lollipop 5.1.1, ứng dụng đã gỡ cài đặt được liệt kê theo tên gói chứ không phải tên ứng dụng. Vì vậy, nếu bạn đã gỡ cài đặt adb và cài đặt adb vẫn không thành công, hãy tìm ứng dụng đã gỡ cài đặt dưới tên gói của bạn. Vì vậy, com.acme.wileycoyote sẽ được liệt kê theo thứ tự abc dưới "c", không phải "w".
Yojimbo

Cảm ơn, điều đó làm việc! Điện thoại của tôi không có tùy chọn "Gỡ cài đặt cho tất cả người dùng", tôi gỡ cài đặt bằng cách đăng nhập vào tất cả người dùng ...
DawnYu

1
"Tất cả người dùng" là gì khi người dùng chính xác là một - TÔI !!! Dù sao, nó hoạt động - nâng cao.
WindRider

21

Hai cách có thể làm việc

1: Gỡ cài đặt ứng dụng khỏi thiết bị di động theo cách thủ công

2: Mở dấu nhắc lệnh, theo dõi đường dẫn adbvà thực hiện lệnh sau

adb uninstall your_package_name

2
Cách duy nhất hoạt động cho các thiết bị mà không cần hiển thị.
DenisKolodin

1
ví dụ: "adb gỡ cài đặt net.gavin.hello" trong đó tên gói trên AndroidManifest.xml là "gói =" net.gavin.hello ""
Gavin Simpson

9

Tôi chỉ đổi tên gói và nó làm việc cho tôi.

Hoặc nếu bạn đang sử dụng Ionic, bạn có thể xóa ứng dụng và thử lại, điều này xảy ra khi ionic phát hiện ra rằng ứng dụng bạn đang triển khai không đến từ cùng một bản dựng. Nó thường xảy ra khi bạn thay đổi từ pc.


Không có gì khác làm việc cho tôi. Cảm ơn ý tưởng tuyệt vời!
Ken Pespisa

2
Quá nhiều công việc, tôi sẽ sao lưu và xóa apk và cài đặt lại.
pevik

không hoạt động trên Android 6.0.1. Phải xóa ứng dụng trên thiết bị và cài đặt lại cùng một gói.
kakyo

13
"Tôi vừa đổi tên gói", điều này không hiệu quả, thực tế là bạn đang tạo một ứng dụng khác!
Jorgesys

8
  1. đi tới: thư mục adb của bạn \ sdk \ platform-tools \
  2. loại cmd
  3. gõ: adb remount trên cửa sổ lệnh
  4. vỏ adb
  5. su
  6. rm /system/app/YourApp.apk
  7. Khởi động lại thiết bị của bạn

điều gì làm lại Tôi có thể sử dụng phiên bản tiếp tục phát hành và gỡ lỗi này và gắn kết và tái hiện chúng một cách dễ dàng không?
piotrek1543

2
Không có ý nghĩa nhiều vì người dùng không được lưu trữ trong /system/appnhưng/data/app
m0skit0

@ piotrek1543 adb remountnhắc lại phân vùng hệ thống dưới dạng đọc-ghi thay vì chỉ đọc mặc định.
m0skit0

8

Câu hỏi là tại sao anh ta nhận được lỗi này. Gỡ cài đặt sẽ giải quyết vấn đề này nhưng trong trường hợp của tôi, trong khi tôi đang cài đặt phiên bản đã biên dịch của apk, vấn đề đã được nêu ra. Tôi đã cố gắng xây dựng một bản cập nhật cho ứng dụng của mình. Vì vậy, những gì tôi đã làm, tôi đã xây dựng một apk có chữ ký và sau đó cố gắng cài đặt apk và apk được cài đặt hoàn hảo. Vì vậy, thay vì gỡ bỏ apk cũ, tôi phải ký vào bản cập nhật mới hơn và sau đó cài đặt nó.


1
Tương tự ở đây. Hãy thử kiểm tra quá trình cập nhật. Vì vậy, gỡ cài đặt không phải là một lựa chọn.
Martin

6

Điều này có thể do bạn có nhiều hơn một người dùng trong thiết bị của mình và bạn vừa xóa ứng dụng trên một ( để lại apk vẫn còn cho (các) người khác ).

Tôi đã xóa trong tất cả các tài khoản và nó đã hoạt động sau đó.


Ý bạn là tài khoản Google?
CACuzcatlan

Vâng, chính xác những gì tôi muốn nói.
neteinstein

5

Điều này có thể xảy ra nếu bạn ký đơn đăng ký của bạn với một chứng chỉ khác. Bạn luôn có thể sử dụng

adb install -r myapk.apk

để ghi đè apk hiện có trên thiết bị của bạn, nhưng bạn vẫn sẽ gặp lỗi nếu bạn đã ký apk mới với một chứng chỉ khác với apk đã cài đặt.

Trong trường hợp đó, bạn sẽ cần gỡ cài đặt apk khỏi thiết bị của mình trước khi thử cài đặt. Tuy nhiên, điều này cũng có thể ảnh hưởng đến ứng dụng của bạn vì việc ký ban đầu của bạn có thể được gắn với một số API của Nhà phát triển nhất định, do đó bạn có thể cần cập nhật bảng điều khiển với thông tin đăng nhập mới.


4

Tôi đã cài đặt trình quản lý tệp Astro và tìm kiếm phiên bản trước của tệp apk, tìm thấy một tệp trên sdcard và xóa tệp apk bằng trình quản lý tệp Astro.


4

Nếu thiết bị của bạn hỗ trợ nhiều người dùng, bạn cũng có thể phải xóa ứng dụng cho từng tài khoản.

Tôi thường sử dụng adb và đó là mẹo adb uninstall <your-package-name>


4

nếu APK được xây dựng trong dự án với tệp Android.mk. Có lẽ vì chứng chỉ ký đã bị thay đổi.

trong vấn đề của tôi, tôi đã thêm nền tảng LOCAL_CERTIFICATE: =. như apk gốc được ký mà không có thẻ này.


Đây thực sự là một bình luận, không phải là một câu trả lời. Với một chút đại diện, bạn sẽ có thể gửi bình luận .
menulul Hassan

2

Trong trường hợp của tôi, không có phiên bản Ứng dụng nào tôi có thể tìm thấy thông qua trình quản lý thiết bị hoặc Astro.

Điều cuối cùng tôi đã làm là:

1) Tải xuống phiên bản mới nhất của Ứng dụng từ cửa hàng ứng dụng

2) Ứng dụng vẫn không hiển thị trong trình quản lý thiết bị cho đến khi tôi khởi động lại thiết bị của mình.

3) Xóa ứng dụng khỏi trình quản lý thiết bị

4) Chạy lại dự án của tôi

5) Mọi thứ hoạt động

Hy vọng điều này sẽ giúp ai đó


2

C: \ android-sdk \ platform-tools \ adb.exe: Lỗi không thành công với mã thoát 1

Lỗi đầu ra: adb: không thể cài đặt app \ platform \ android \ app \ build \ output \ apk \ debug \ app-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Gói com.example. app1chữ ký không khớp với phiên bản đã cài đặt trước đó; bỏ qua!]

Giải pháp:

Bạn đã app1cài đặt ứng dụng trên điện thoại (chủ yếu tải xuống từ bảng điều khiển chơi hoặc khóa tải lên được thay đổi)
Gỡ cài đặt ứng dụng.

Thêm chi tiết:

Có thể bạn đã tải ứng dụng này lên cửa hàng play bằng khóa tải lên, bảng điều khiển play đã áp dụng chữ ký của riêng nó cho nó. Đó là lý do tại sao ứng dụng trong điện thoại của bạn được tải xuống từ google play không có cùng chữ ký của khóa tải lên của bạn.

Bằng cách gỡ cài đặt ứng dụng, không có phiên bản ứng dụng của cửa hàng chơi, vì vậy sẽ khớp sai khi bạn cài đặt phiên bản mới cho điện thoại.

Mong rằng sẽ giúp.


1

Chuyển đến Cài đặt / Ứng dụng / Tìm kiếm ứng dụng của bạn và bỏ qua ...

Nó đã làm việc cho tôi


1
  1. Chuyển đến Cài đặt / Ứng dụng / Tìm kiếm ứng dụng của bạn và gỡ cài đặt ...
  2. mở dấu nhắc lệnh và "gỡ cài đặt adb"

Nó đã làm việc cho tôi


1

Đối với người dùng MIUI, ngoài tùy chọn gỡ lỗi USB thông thường, hãy đảm bảo bật cả các cài đặt này:

Cài đặt qua USB
Gỡ lỗi (Cài đặt bảo mật)

sau đó chấp nhận lời nhắc khi bạn thử cài đặt lại ứng dụng.


1

Tôi đã có cùng một vấn đề và đã làm theo để sửa nó.

  1. Cài đặt> Lưu trữ> Xóa dữ liệu đã lưu
  2. Cài đặt> Ứng dụng> Gỡ cài đặt các ứng dụng hiển thị ở đó. Tôi đã gỡ cài đặt ứng dụng của mình nhưng nó đang hiển thị ở đó.
  3. Khởi động lại và sau đó mọi thứ đều ổn.

3
Điểm thứ 2 đã giúp. Trong trường hợp của tôi, ứng dụng không được cài đặt cho người dùng hiện tại nhưng đã được cài đặt cho người dùng khác. Vì vậy, tôi đã nhấp vào ứng dụng trong danh sách Ứng dụng và bên trong trang chi tiết, nhấp vào nút Khác (ba dấu chấm dọc). Ở đó, nó có tùy chọn 'Gỡ cài đặt cho tất cả người dùng'. Điều đó đã làm nó cho tôi. Cảm ơn!
Harisewak

1

Tôi chỉ mất một giờ để cố gắng gỡ lỗi này và sau đó nhận ra rằng tôi đã kết nối với trình giả lập thay vì điện thoại của tôi. Vì vậy, mặc dù tôi đã xóa thành công ứng dụng trên điện thoại nhưng nó vẫn không thành công. Sai lầm ngu ngốc nhưng có lẽ điều này sẽ giúp người khác.


0

Trong trường hợp của tôi, tôi đã cài đặt Ứng dụng từ Playstore và sau đó khi tôi đang cố chạy từ Eclipse hoặc Android Studio để nó sẽ cố gắng cài đặt lại trên APK đó không cho phép.

Vì vậy, trước hết bạn phải Gỡ cài đặt APK Siged đó và sau đó bạn phải thử.

Cảm ơn bạn.


0

RankoR @ bạn phải cài đặt ứng dụng từ một máy tính khác. trong trường hợp của tôi đó là vấn đề phát sinh .. tất cả những gì bạn cần làm chỉ là gỡ cài đặt ứng dụng và cài đặt lại hoặc chạy nó từ máy tính bạn đang làm việc .. đây có thể là một phản hồi muộn nhưng nó sẽ giúp ích cho ai đó .. cảm ơn


0

Nó xảy ra với tôi khi tôi cài đặt bản dựng dev bằng Instant Run và gỡ cài đặt khỏi Google Play. Vì một số lý do, dữ liệu từ Instant Run vẫn còn trong thiết bị và không thể cài đặt / gỡ cài đặt lại ứng dụng.

Cách duy nhất để khắc phục: - tắt Instant Run trong android studio - cài đặt từ android studio (chỉ nên hoạt động từ đây) - gỡ cài đặt ứng dụng

bây giờ nó sẽ sạch để cài đặt từ Google Play hoặc adb.


0

nó xảy ra nếu bạn xây dựng apk của mình từ một số PC khác và cập nhật nó từ PC khác.


Giải pháp cho trường hợp này là gì?
dpaksoni

0

Nếu tệp Manifest của bạn có dòng này -

android: sharedUserId = "android.uid.system"

đang gây ra lỗi này! Chỉ cần bình luận dòng này và bạn là tốt để đi !!


0

Tôi không thấy ai đề cập đến trường hợp của mình, vì vậy hãy để tôi thêm nó - nó xảy ra khi bạn xây dựng ứng dụng ở một chế độ (ví dụ: Dev) và sau đó thử ghi đè lên nó bằng một chế độ khác (ví dụ: Sản xuất).

Giải pháp tương tự như đối với các trường hợp khác - xóa ứng dụng trên thiết bị / trình giả lập và chạy lại.


0

Nếu bạn đang cố gắng gỡ lỗi từ một máy tính khác với ban đầu, bạn sẽ gặp phải lỗi INSTALL_FAILED_UPDATE_INCOMPATIBLE đáng sợ. Tuy nhiên, có một cách để tiến hành mà không cần gỡ cài đặt ứng dụng và mất dữ liệu của bạn.

Để xem cách chuyển debug.keystore được yêu cầu để bạn không nhận được thông báo "Thiết bị đã có một ứng dụng có cùng ứng dụng nhưng có chữ ký khác. Để tiếp tục, bạn sẽ phải gỡ cài đặt ứng dụng hiện có." (và mất dữ liệu của bạn). Xem Cập nhật ứng dụng trong một máy khác có cùng debug.keystore trong Android


0

Điện thoại Samsung Galaxy có một tính năng được gọi là Ứng dụng xóa thư mục an toàn khỏi vấn đề đó đã giải quyết vấn đề cho tôi.

cũng adb gỡ cài đặt packagename Không thể xóa ứng dụng khỏi thư mục Secure.

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.