INSTALL_FAILED_UPDATE_INCOMPATIBLE, gdy próbuję zainstalować skompilowany plik .apk na urządzeniu


291

Skompilowałem program uruchamiający Trebuchet z CyanogenMod 9 i próbuję zainstalować go z 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]

Próbowałem na Nexusie S z CM9 i Galaxy Nexusie ze standardowym JB. Dlaczego dostaję ten błąd?

EDYCJA: W moim przypadku próbowałem ponownie zainstalować pakiet systemowy za pomocą menedżera pakietów. To nie jest obsługiwane, więc mam ten błąd. Źródło błędu może się różnić w Twoim przypadku.


2
na niektórych najnowszych urządzeniach z funkcją wielu użytkowników sprawdź, czy aplikacja jest zainstalowana dla innych użytkowników (tj. login gościa). Tester w mojej firmie zmagał się z tym problemem przez godzinę, kiedy przyszedł do mnie, zajęło mi to również 5-10 minut, aby dowiedzieć się, że ta sama aplikacja została zainstalowana pod innym loginem gościa na tym urządzeniu, więc nie było pokazywanie się na ekranie
głównym

Odpowiedzi:


500

oznacza to, że aplikacja, którą chcesz zainstalować, jest już zainstalowana. po prostu usuń stary i spróbuj ponownie.


27
Pracował dla mnie, ale musiałem też raz zrestartować komputer.
droidgren

28
Musiałem przejść do Ustawień -> Zarządzaj aplikacjami, aby znaleźć aplikację i wybrać Odinstaluj ją stamtąd, ponieważ nie pojawiła się gdzie indziej.
David Conlisk

23
Może również wymagać odinstalowania ze wszystkich kont użytkowników (mój Nexus 10 miał 3 użytkowników).
Tyler Kiser

1
@TylerKiser Dzięki za informacje na ten temat.
Jacob Holloway

1
co jeśli po prostu spróbuję zaktualizować istniejącą aplikację? spowoduje to usunięcie wszystkiego, co moja ostatnia aplikacja zapisała lokalnie
miracle-doh

184

Próbować

adb uninstall package-name

Mi to pasuje. Usunąłem aplikację za pomocą Titanium Backup. Myślę jednak, że kopia zapasowa Titanium nie usunęła całkowicie mojej aplikacji.


1
Zauważyłem to samo za pomocą DevDrawer. To zadziałało.
tir38

1
Dzięki! To uratowało mnie przed ogromnym niewyjaśnionym bólem głowy. Nie jestem pewien, jak dostałem się w tym stanie ... Debuguję aplikację w Xamarin Studio i Visual Studio i działała dobrze, dopóki nie była ... och dobrze.
Jamie

1
Kiedy wszystkie pozostałe odpowiedzi nie powiodły się ... zadziałało.
DennisWelu,

Świetny! Proste i łatwe. Dzięki temu rozwiązaniu nie ma potrzeby ponownego uruchamiania komputera.
taciosd

Mi to pasuje. Zanim spróbowałem ręcznie odinstalować i uruchomić ponownie i nic się nie zmienia, tylko z poleceniem adb działa. Dziękuję Ci.
ricky.tribbia

101

Wystarczy odinstalować aplikację, aby uniknąć tego problemu.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

ale czasami nawet odinstalowanie wiadomości jest podnoszone ponownie, pojawia się w systemie Android OS 5.0 +, więc jest to rozwiązanie:

Przejdź do Settings>, Appsa znajdziesz swoją aplikację z komunikatem:

„Niezainstalowany dla tego użytkownika” wprowadź opis zdjęcia tutaj

Musimy odinstalować ręcznie dla wszystkich użytkowników !, wtedy możemy bez problemu zainstalować naszą skompilowaną aplikację.

wprowadź opis zdjęcia tutaj

Inne opcje:

  • Usuń starą aplikację i zainstaluj ponownie.
  • Użyj polecenia Android Debug Bridge:

    odinstaluj adb [NAZWA PAKIETU]


2
Dziękuję Ci! Właśnie tego potrzebowałem. Dlaczego i kiedy zaczęli to robić w ten sposób?
Nick

najwyraźniej od OS 5.0 +
Jorgesys,

1
Początkowo nie mogłem znaleźć mojej odinstalowanej aplikacji w Ustawieniach -> Aplikacje. Okazało się, że w Lollipop 5.1.1 odinstalowana aplikacja była wymieniona według nazwy pakietu, a nie nazwy aplikacji. Jeśli więc odinstalowałeś adb, a instalacja adb nadal nie powiedzie się, poszukaj odinstalowanej aplikacji pod nazwą pakietu. Tak więc com.acme.wileycoyote zostanie wymieniony alfabetycznie pod „c”, a nie „w”.
Yojimbo

Dzięki, to działa! Mój telefon nie ma opcji „Odinstaluj dla wszystkich użytkowników”, odinstalowuję go, logując się dla wszystkich użytkowników ...
DawnYu

1
Co „wszyscy użytkownicy”, gdy użytkownik jest dokładnie jednym - JA !!! W każdym razie działa - pozytywnie oceniany.
WindRider

21

Dwa sposoby, które mogą być skuteczne

1: Ręcznie odinstaluj aplikację z urządzenia mobilnego

2: Otwórz wiersz polecenia, śledź ścieżkę adbi wykonaj następujące polecenie

adb uninstall your_package_name

2
Jedyny sposób, który działa na urządzeniach bez wyświetlacza.
DenisKolodin

1
np .: „adb uninstall net.gavin.hello”, gdzie nazwa pakietu znajduje się na AndroidManifest.xml jako „package =” net.gavin.hello ””
Gavin Simpson

9

Właśnie zmieniłem nazwę pakietu i zadziałało to dla mnie.

Lub jeśli używasz Ionic, możesz usunąć aplikację i spróbować ponownie, dzieje się tak, gdy ionic wykryje, że wdrażana aplikacja nie pochodzi z tej samej wersji. Często zdarza się, gdy zmieniasz komputer.


Nic innego nie działało dla mnie. Dzięki za świetny pomysł!
Ken Pespisa

2
Zbyt dużo pracy, zrobiłbym kopię zapasową i usunąłem apk i ponownie go zainstalowałem.
pevik

nie działał na Androidzie 6.0.1. Musiałem usunąć aplikację na urządzeniu i ponownie zainstalować ten sam pakiet.
kakyo

13
„Właśnie zmieniłem nazwę pakietu”, to nie działa, w rzeczywistości tworzysz kolejną aplikację!
Jorgesys

8
  1. przejdź do: twój folder adb \ sdk \ platform-tools \
  2. wpisz cmd
  3. wpisz: adb remount w oknie poleceń
  4. powłoka adb
  5. su
  6. rm /system/app/YourApp.apk
  7. Uruchom ponownie urządzenie

co się łączy? czy mogę używać tej wersji Keep i Debuguj oraz łatwo instalować i ponownie instalować?
piotrek1543

2
Nie ma to większego sensu, ponieważ /system/app/data/app
apki

@ piotrek1543 adb remountponownie instaluje partycję systemową jako domyślną tylko do odczytu zamiast do odczytu.
m0skit0

8

Pytanie brzmiało, dlaczego dostaje ten błąd. Odinstalowanie rozwiąże ten problem, ale w moim przypadku, gdy instalowałem skompilowaną wersję apk, problem pojawił się. Próbowałem zbudować aktualizację dla mojej aplikacji. Więc co zrobiłem, zbudowałem podpisany apk, a następnie próbowałem zainstalować apk, a apk został zainstalowany idealnie. Więc raczej usuwając stary apk, musiałem podpisać nowszą aktualizację, a następnie ją zainstalować.


1
To samo tutaj. Spróbuj przetestować proces aktualizacji. Dlatego odinstalowanie nie jest opcją.
Martin

6

Może to być spowodowane tym, że masz więcej niż jednego użytkownika na swoim urządzeniu i właśnie usunąłeś aplikację na jednym ( pozostawiając apk wciąż obecny dla innych użytkowników) ).

Usunąłem wszystkie konta, a potem zadziałało.


Masz na myśli konta Google?
CACuzcatlan

Tak, dokładnie o co mi chodzi.
neteinstein

5

Może się to zdarzyć, jeśli podpiszesz aplikację za pomocą innego certyfikatu. Zawsze możesz użyć

adb install -r myapk.apk

aby zastąpić istniejący plik APK na urządzeniu, ale błąd nadal będzie występował, jeśli nowy plik APK zostanie podpisany innym certyfikatem niż zainstalowany pakiet.

W tym scenariuszu musisz odinstalować aplikację z urządzenia przed próbą instalacji. Może to jednak również wpłynąć na twoją aplikację, ponieważ pierwotne podpisywanie może być powiązane z niektórymi interfejsami API programisty, więc może być konieczne zaktualizowanie konsoli o nowe poświadczenia.


4

Zainstalowałem menedżera plików Astro i szukałem poprzedniej wersji pliku apk, znalazłem go na sdcard i usunąłem plik apk za pomocą menedżera plików Astro.


4

Jeśli Twoje urządzenie obsługuje wielu użytkowników, może być konieczne usunięcie aplikacji również dla każdego konta.

Zwykle używam adb i to załatwia sprawę adb uninstall <your-package-name>


4

jeśli plik APK jest wbudowany w projekt z plikiem Android.mk. Może to dlatego, że certyfikat znaku został zmieniony.

w moim problemie dodałem LOCAL_CERTIFICATE: = platforma. ponieważ oryginalny apk jest podpisany bez tego znacznika.


To jest naprawdę komentarz, a nie odpowiedź. Przy nieco większym przedstawicielu będziesz mógł dodawać komentarze .
Enamul Hassan

2

W moim przypadku nie było wersji aplikacji, którą mógłbym znaleźć w Menedżerze urządzeń lub Astro.

Skończyło się na tym, że:

1) Pobierz najnowszą wersję aplikacji ze sklepu z aplikacjami

2) Aplikacja była nadal niewidoczna w menedżerze urządzeń, dopóki nie zrestartowałem urządzenia.

3) Usuń aplikację z menedżera urządzeń

4) Uruchom ponownie mój projekt

5) Wszystko działa

Mam nadzieję, że to komuś pomoże


2

C: \ android-sdk \ platform-tools \ adb.exe: Komenda nie powiodła się z kodem wyjścia 1

Wystąpił błąd: adb: nie można zainstalować aplikacji \ platform \ android \ aplikacji \ kompilacji \ wyjść \ apk \ debug \ app-debug.apk: błąd [INSTALL_FAILED_UPDATE_INCOMPATIBLE: pakiet com. Przykład. app1podpisy nie pasują do poprzednio zainstalowanej wersji; ignorowanie!]

Rozwiązanie:

Masz już app1zainstalowaną aplikację na telefonie (najczęściej pobierana z konsoli Play lub klucz do przesyłania został zmieniony)
Odinstaluj aplikację.

Więcej szczegółów:

Możliwe, że masz już przesłaną aplikację do sklepu za pomocą klucza do przesyłania, konsola do gier zastosowała do niej własny podpis. Dlatego aplikacja w telefonie pobrana z Google Play nie ma tej samej sygnatury klucza przesyłania.

Po odinstalowaniu aplikacji nie ma wersji sklepu Play, więc nie pasuje do niej, gdy instalujesz nową wersję telefonu.

Mam nadzieję, że to pomaga.


1

Przejdź do Ustawienia / Aplikacje / Wyszukaj aplikację i unistall ...

To zadziałało dla mnie


1
  1. Przejdź do Ustawienia / Aplikacje / Wyszukaj aplikację i odinstaluj ...
  2. otwórz wiersz polecenia i „odinstaluj adb”

To zadziałało dla mnie


1

W przypadku użytkowników MIUI oprócz zwykłej opcji debugowania USB należy również włączyć te ustawienia:

Zainstaluj przez USB
debugowanie USB (ustawienia bezpieczeństwa)

a następnie zaakceptuj monit przy ponownej próbie zainstalowania aplikacji.


1

Mam ten sam problem i postarałem się go naprawić.

  1. Ustawienia> Pamięć> Wyczyść buforowane dane
  2. Ustawienia> Aplikacje> Odinstaluj pokazane tam aplikacje. Odinstalowałem moje aplikacje, ale się tam wyświetlały.
  3. Uruchom ponownie, a potem wszystko poszło dobrze.

3
Drugi punkt pomógł. W moim przypadku aplikacja nie została zainstalowana dla bieżącego użytkownika, ale została zainstalowana dla innych użytkowników. Tak więc kliknąłem aplikację na liście aplikacji i na stronie szczegółów kliknąłem przycisk Więcej (trzy pionowe kropki). Tam miał opcję „Odinstaluj dla wszystkich użytkowników”. To mi zrobiło. Dzięki!
Harisewak

1

Właśnie spędziłem godzinę próbując to debugować, a potem zdałem sobie sprawę, że jestem podłączony do emulatora zamiast do telefonu. Więc mimo tego, że udało mi się usunąć aplikację z mojego telefonu, nadal nie działa. Głupi błąd, ale może to pomoże komuś innemu.


0

W moim przypadku zainstalowałem aplikację z Playstore, a potem próbuję uruchomić z Eclipse lub Android Studio więc spróbuje zainstalować ponownie na tym APK, który nie zezwoli.

Przede wszystkim musisz odinstalować ten Siged APK a następnie musisz spróbować.

Dziękuję Ci.


0

RankoR @ musisz zainstalować aplikację z innego komputera. w moim przypadku tam właśnie pojawił się problem ... wystarczy odinstalować aplikację i zainstalować ją ponownie lub uruchomić z komputera, na którym pracujesz .. może to być spóźniona odpowiedź, ale to pomoże komuś .. dzięki


0

Zdarzyło mi się to, gdy zainstalowałem wersję deweloperską za pomocą Instant Run i odinstalowałem z Google Play. Z jakiegoś powodu dane z Instant Run są nadal w urządzeniu i nie mogą ponownie zainstalować / odinstalować aplikacji.

Jedyny sposób, aby to naprawić: - wyłącz Instant Run w Android Studio - zainstaluj z Android Studio (powinno działać tylko tutaj) - odinstaluj aplikację

teraz powinno być czyste, aby zainstalować z Google Play lub adb.


0

miało to miejsce, jeśli zbudujesz apk z innego komputera i zaktualizujesz go z innego komputera.


Jakie jest rozwiązanie tej sprawy?
dpaksoni

0

Jeśli plik manifestu ma tę linię -

android: sharedUserId = "android.uid.system"

powoduje ten błąd! po prostu skomentuj ten wiersz i możesz zacząć !!


0

Nie widzę, żeby ktoś wspominał o mojej sprawie, więc pozwólcie, że ją dodam - dzieje się tak, gdy buduje się aplikację w jednym trybie (np. Dev), a następnie próbuje zastąpić ją innym trybem (np. Produkcja).

Rozwiązanie jest takie samo jak w innych przypadkach - usuń aplikację z urządzenia / symulatora i uruchom ponownie.


0

Jeśli próbujesz debugować z innego komputera niż pierwotnie, pojawi się przerażający błąd INSTALL_FAILED_UPDATE_INCOMPATIBLE. Jednak, sposób na kontynuację bez odinstalowywania aplikacji i utraty danych.

Aby dowiedzieć się, jak przenieść wymagany plik debug.keystore, aby nie wyświetlał się komunikat „Urządzenie ma już aplikację z tą samą aplikacją, ale inną sygnaturą. Aby kontynuować, musisz odinstalować istniejącą aplikację”. (i stracisz swoje dane). Zobacz Aktualizacja aplikacji na innym komputerze z tym samym debug.keystore w Androidzie


0

Telefony Samsung Galaxy mają funkcję znaną jako Bezpieczny folder usuwanie z tego rozwiązania Problem dla mnie.

również adb uninstall nazwa-pakietu nie może usunąć aplikacji z bezpiecznego folderu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.