Próbowałem ponownie zainstalować apk
$adb install -r new.apk
I pokazuje błąd:
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
Jednym z rozwiązań jest odinstalowanie i zainstalowanie new.apk, który działa dobrze.
Ale zastanawiam się, czy mógłbym przebudować apk i zainstalować ponownie bez dezinstalacji. Na przykład. zmień konfigurację w pliku AndroidManifest.xml lub nie podpisuj APK itp.
Byłoby bardzo mile widziane, gdybyś mógł mi powiedzieć całe znaczenie „INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES”.
Odpowiedzi:
Oznacza to, że nowa kopia aplikacji (na komputerze dewelopera) została podpisana innym kluczem do podpisywania niż stara kopia aplikacji (zainstalowana na urządzeniu / emulatorze). Na przykład, jeśli jest to urządzenie, możliwe, że nałożyłeś starą kopię z innego komputera programistycznego (np. Innego komputera programisty). Lub stary podpisany jest kluczem produkcyjnym, a nowy podpisany kluczem debugowania.
źródło
debug.keystore
) na nowy komputer.debug.keystore
nie ma go w katalogu projektu. Zwykle znajduje się w twoim~/.android/
katalogu. (patrz developer.android.com/guide/publishing/… )debug.keystore
.). Wybierz jeden, aby być głównym magazynem kluczy, skopiuj go na wszystkie inne komputery programistów, zastępując ich istniejący magazyn kluczy.debug.keystore
). Kiedy odbudowałem projekt (używając Build-> Rebuild w Android Studio) klucze były zsynchronizowane.Wpadłem na to podczas testowania nowego Xooma. Wcześniej zainstalowałem aplikację z Marketplace. Później podczas próby przetestowania nowej wersji aplikacji napotkałem ten błąd.
Naprawiłem to, usuwając aplikację zainstalowaną za pośrednictwem usługi Marketplace (wystarczy przytrzymać i przeciągnąć do kosza). Następnie mogłem bez problemu wdrożyć moją wersję programistyczną.
źródło
Stało się tak, gdy inny programista w zespole zbudował naszą aplikację na urządzeniu sprzętowym, na którym próbowałem wdrożyć. Odinstalowanie aplikacji ze sprzętu naprawiło mój problem.
źródło
adb uninstall <package name>
. Dzięki.To polecenie odinstalowania aplikacji z urządzenia za pomocą adb:
źródło
Ten błąd pojawił się nawet po odinstalowaniu oryginalnego pakietu APK, co było dziwne. W końcu zdałem sobie sprawę, że skonfigurowałem wielu użytkowników na moim Nexusie 7 do testowania i że aplikacja była nadal zainstalowana dla jednego z pozostałych użytkowników. Po odinstalowaniu go dla wszystkich użytkowników błąd zniknął.
źródło
Zmieniłem nazwę pakietu podczas kodowania aktualizacji, aby móc debugować ją na moim urządzeniu za pośrednictwem Eclipse, bez usuwania starej zainstalowanej wersji. Bez cofania nazwy pakietu, którego użyłem podczas próby ponownej instalacji, wystąpił ten sam błąd. Przy użyciu tej samej nazwy pakietu ponowna instalacja zakończyła się powodzeniem.
źródło
Po prostu usuń starą wersję z urządzenia i zainstaluj ją ponownie. Ponieważ device.keystore już istnieje w urządzeniu, po prostu odinstaluj kompilację i ponownie zainstaluj pakiet APK.
Dzięki
źródło
Napotkałem inny przypadek użycia, w którym dostałem podobny błąd. Gdy na początku pojawił się błąd, spanikowałem i usunąłem.
/data/data/{package.name}
Następnie spróbowałem, a mój problem nadal występował. Potem spróbowałem odinstalować, to nie powiodło się.Następnie usunąłem plik apk obecny
/system/app
(wymagany dostęp do roota) i spróbowałem odinstalować i udało się.Potem próbowałem ponownie zainstalować apk, zadziałało.
źródło
Jeśli chodzi o to, co warto, napotkałem ten problem po dodaniu nowej wtyczki do mojego projektu Cordova. Miałem Cordova do kompilacji i instalacji bezpośrednio na urządzeniu przez USB.
Naprawiłem to, odinstalowując aplikację z urządzenia, a przy następnym wdrożeniu nie było problemów.
źródło
Jeśli napotkasz nieudane wdrożenie na urządzeniu lub emulatorze Andorid z błędem „Błąd [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]” w oknie Wyjście, po prostu usuń istniejącą aplikację na urządzeniu lub emulatorze i ponownie wdróż. Kompilacje debugowania będą używać certyfikatu debugowania, a kompilacje wersji będą używać skonfigurowanego certyfikatu. Ten błąd informuje po prostu, że certyfikat aplikacji zainstalowanej na urządzeniu jest inny niż ten, który próbujesz zainstalować. W scenariuszach niezwiązanych z programowaniem (sklep z aplikacjami) może to wskazywać na uszkodzoną lub w inny sposób zmodyfikowaną aplikację, której instalacja na urządzeniu nie jest bezpieczna.
źródło
Nic z góry nie działało dla mnie. Problem polegał na tym, że miałem złe źródło w mojej ścieżce kompilacji Java dla android-support-v7-appcompat. Po przejściu do opcji Projekt> Ścieżka kompilacji> Konfiguruj ścieżkę kompilacji>. Na karcie Źródło upewnij się, że masz Android-support-v7-appcompat / gen, android-support-v7-appcompat / libs i android-support-v7-appcompat / src i nic więcej. Kliknij OK i powinno działać.
źródło
Miałem dzisiaj ten sam błąd, ale problem nie był dokładnie taki sam. Używam ADB z Androidem zainstalowanym w VirtualBox . Próbowałem zainstalować różne wersje mojej aplikacji (podpisany / niepodpisany, tryb debugowania / wydania) i dostałem dwa błędy na przemian:
INSTALL_FAILED_UID_CHANGED
iINSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
.Teraz, patrząc na to
/data/data/{package.name}
, znalazłem kilka plików, które nadal tam były po odinstalowaniu aplikacji. Próbowałemrm -rf
ich bez powodzenia: dostałem błędy we / wy.Rozwiązaniem tego było:
vdfuse
(odczyt / zapis)Partition1
plik obrazu za pomocąe2fsck
źródło
Miałem ten sam problem, dopóki nie zdałem sobie sprawy, że mam uruchomiony symulator i adb próbował na nim zainstalować
źródło
Ponieważ weryfikacja opiera się na nazwie pakietu, możesz zmienić nazwę pakietu w pliku config.xml lub pliku manifestu na inną nazwę, którą chcesz.
Podczas publikowania aplikacji nie zapomnij zmienić nazwy!
źródło
Miałem ten problem przy próbie wykonania zadania stopniowego
connectedDebugAndoidTest
(lubconnectedAndroidTest
) na Genymotion . Uruchomienie go na normalnym emulatorze rozwiązało problem.źródło
Myślę, że Twoja aplikacja została zainstalowana przez inne konto. (Funkcja trybu wielu kont) Możesz odinstalować aplikację w Ustawieniach> Aplikacje> „Nazwa aplikacji”> Odinstaluj
źródło