Podpisy pakietów nie pasują do poprzednio zainstalowanej wersji


93

To mój projekt: https://github.com/kenpeter/my_hak_news , który jest bezpośrednią kopią https://github.com/grigio/HAgnostic-News .

Sklonuj Git https://github.com/kenpeter/my_hak_news , a następnie uruchomreact-native run-android

Mam ten błąd:

* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.hagnosticnews signatures do not match the previously installed version; ignoring!

Powiązany problem: https://github.com/grigio/HAgnostic-News/issues/1 , podążam różnymi drogami, ale nie jestem w stanie rozwiązać tego problemu.


14
Czy masz już zainstalowaną aplikację na swoim telefonie? Jeśli tak, musisz go odinstalować, ponieważ używasz innego podpisu niż oryginalny
maxoumime

Po zainstalowaniu na telefonie, odinstalowałem go, naciskając długo, a następnie przeszedłem do odinstalowania. Wciąż nie działa.
kenpeter

4
Sprawdź, czy aplikacja została odinstalowana dla wszystkich użytkowników. Idź do Ustawienia -> Aplikacje -> Wiadomości HAgnostic -> Opcje (trzy kropki w prawym górnym rogu) -> Odinstaluj dla wszystkich użytkowników
maxoumime

To jest rozwiązanie!
kenpeter

Odpowiedzi:


133

Musisz go odinstalować, ponieważ używasz innego podpisu niż oryginał. Jeśli nie działa, może to być spowodowane tym, że jest nadal zainstalowany na urządzeniu dla innego użytkownika. Aby całkowicie odinstalować, przejdź do Ustawienia -> Aplikacje -> Wiadomości HAgnostic -> Opcje (trzy kropki w prawym górnym rogu) -> Odinstaluj dla wszystkich użytkowników


2
Odinstalowanie nic nie daje. Ten błąd występuje nawet na urządzeniach, na których nie zainstalowano aplikacji.
Igor Ganapolsky

3
@maxoimime co się stanie, gdy opublikujesz nową wersję w Sklepie Play. Czy użytkownik musi odinstalować aplikację przed zainstalowaniem nowej wersji? A może użytkownik będzie mógł bez problemu zaktualizować aplikację?
Peter

@maxoimime ta odpowiedź działa. Możesz rozważyć usunięcie swojego komentarza. Dla większości użytkowników jest to mylące
AL-zami

1
To też był problem dla mnie. Okazuje się, że moja aplikacja została również zainstalowana w Samsung Secure Folder.
Roman

Napotkałem ten problem, ponieważ z pewnych powodów niektóre wcześniej odinstalowane aplikacje były „niezainstalowane dla tego użytkownika”. Ale mam tylko jednego użytkownika w moim telefonie. To dziwne
Rémi Rousselet

79

Spotkałem się z tym problemem również w moim projekcie.

To mi pomogło, więc mam nadzieję, że pomoże komuś innemu:

adb uninstall "com.domain.yourapp"

Rozwiązanie jest tutaj.


Prawidłowa odpowiedź, +1 za uratowanie mojego dnia :)
Saeed

1
To jest prawidłowa odpowiedź, ponieważ odinstalowałem już aplikację z telefonu dla wszystkich użytkowników, ale nadal otrzymywałem ten sam błąd. Dzięki
Tarek K. Ajaj

1
Tutaj użytkownik Xamarin Forms. To była odpowiedź dla mnie. Odinstalowałem aplikację z telefonu, ale to nie wystarczyło.
brunner

tak, to działa również dla mnie, nie wyświetla się na liście aplikacji!
sl45sms

Byłem tak pewny, że to właściwa odpowiedź, że zagłosowałem za nią, zanim jeszcze ją wypróbowałem i zgodnie z oczekiwaniami zadziałało. Dzięki!
Jay Yoon

17

Jeśli wersja aplikacji, którą zainstalowałeś, nie została zbudowana przy użyciu tego samego magazynu kluczy / certyfikatu podpisującego, będzie miała inny podpis. Domyślnie każdy komputer kompilacji będzie miał inny certyfikat debugowania, chyba że określisz, w jaki sposób powinien być podpisany zgodnie z dokumentacją Google , której można użyć, aby upewnić się, że aplikacja zostanie zbudowana z tym samym kluczem debugowania, niezależnie od komputera, na którym zbudujesz aplikację na.

Aby kontynuować instalację, należy odinstalować istniejącą wersję, a następnie spróbować ponownie.


14

Dzieje się tak, gdy zainstalowałeś aplikację z różnymi wersjami na telefonie komórkowym / emulatorze.

Wystarczy odinstalować istniejącą aplikację, aby rozwiązać problem


10

Dzieje się tak głównie wtedy, gdy na telefonie jest zainstalowana wersja aplikacji ze sklepu Google Play. Możesz zbudować kod przy użyciu tego samego magazynu kluczy / certyfikatu, którego użyłeś w wersji produkcyjnej, lub po prostu odinstalować go z telefonu i zbudować za pomocą magazynu kluczy / certyfikatu debugowania


Mam do czynienia z tym samym problemem, o którym mowa w pytaniu. Czy możesz mi powiedzieć, jak mogę zbudować kod z wcześniejszym plikiem kluczy / certyfikatem? Mój klient dostarczył mi plik kluczy, ale nie wiem, jak mogę zbudować mojego natywnego Androida reagującego na plik kluczy dostarczony przez mojego klienta.
Yousaf Iqbal

Nie robiłem Androida od jakiegoś czasu, ale zgodnie z tym: developer.android.com/studio/publish/app-signing#sign_release , powinieneś przejść do Build> Generate Signed Bundle / APK i pod `` Key store path '' ', naciśnij' Wybierz istniejący ... '
AS

6

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: nie udało się sfinalizować sesji: INSTALL_FAILED_UPDATE_INCOMPATIBLE: Podpisy pakietu [MY REACT NATIVE APP NAME HERE] nie pasują do poprzednio zainstalowanej wersji; ignorowanie!

Otrzymałem ten błąd podczas próby zainstalowania mojej aplikacji React Native na Androida na podłączonym urządzeniu za pomocą tego polecenia:

react-native run-android --variant=release

Miałem też emulator działający na moim komputerze.

Po zamknięciu emulatora uruchomienie tego polecenia zakończyło się pomyślnie.


6

Dzisiaj miałem ten sam problem na moim urządzeniu Samsung. W moim przypadku aplikacja NIE wyświetlała się na telefonie, ale została ZAINSTALOWANA , więc nie mogłem jej odinstalować / usunąć . Dlatego musiałem odinstalować aplikację za pomocą terminala : $ adb uninstall "com.domain.yourapp" Moje drzewo projektu wygląda następująco (widok częściowy):

└── com
    └── gluonapplication
        ├── DrawerManager.java
        ├── StartApplication.java
        └── views
            ├── PrimaryPresenter.java
            ├── PrimaryView.java
            ├── SecondaryPresenter.java
            └── SecondaryView.java

Dla mnie polecenie brzmiało: $ adb uninstall com.gluonapplication Po zakończeniu zainstalowałem aplikację przez terminal:

$ cd /path/to/apk/
$ adb install -t myAwesomeApp.apk  # -t means test install

To właśnie zadziałało dla mnie. Mam nadzieję, że ta odpowiedź jest pomocna.


5

Jeśli próbujesz zainstalować go w emulatorze, ale masz inny telefon podłączony do komputera przez USB, odłącz kabel USB lub wyłącz debugowanie USB w urządzeniu fizycznym. (Sam zmarnowałem 30 minut.)


1
To był mój problem. Miałem telefon podłączony do komputera w celu naładowania i próbowałem uruchomić w emulatorze.
user3486427

3

Mam ten sam błąd. Odinstalowałem aplikację na moim urządzeniu wirtualnym i ponownie uruchomiłem polecenie: „Reaguj na natywne run-android”.


1

Mam ten sam problem, w AVD działało dobrze, ale w moim telefonie nie było ok. Odinstalowałem aplikację na moim telefonie i działa dobrze.


1

Ten błąd przydarzył mi się, gdy poprzednia kompilacja na moim symulatorze / telefonie była przesyłana z różnymi poświadczeniami. To, co musiałem zrobić, to uruchomić:

adb uninstall com.exampleappname

Gdy to zrobiłem, mogłem ponownie uruchomić kompilację i wygenerować plik APK.


0

Musisz go odinstalować, ponieważ używasz innego podpisu niż oryginał. Jeśli nie działa, może to być spowodowane tym, że jest nadal zainstalowany na urządzeniu dla innego użytkownika. Aby całkowicie odinstalować, przejdź do Ustawienia -> Aplikacje -> (określona aplikacja) -> Opcje (trzy kropki w prawym górnym rogu) -> Odinstaluj dla wszystkich użytkowników.

Mam również ten problem, który już zainstalowaną aplikację ionic (ta sama nazwa pakietu) usuwa z mojego telefonu po tym, jak działa idealnie.


0

Miałem ten problem na urządzeniu Samsung, odinstalowanie aplikacji dało ten sam komunikat. Problem polegał na tym, że aplikacja została również zainstalowana w obszarze „Bezpieczny folder” telefonu. Warto sprawdzić, czy to Twój scenariusz.


0

Przejdź do Android Studio -> Menedżer AVD -> Wybierz swój AVD i wyczyść dane użytkownika

Nie ma potrzeby ponownego instalowania całego AVD.


0

musisz całkowicie odinstalować dla urządzeń LG za pomocą polecenia cmd adb uninstall nazwa_pakietu


oni odpowiedzieć na to pytanie 4 lata temu co sugeruje
Gonzalo Garcia

0

Zdarzyło mi się to w projekcie React Native, gdy zmieniałem nazwę identyfikatora pakietu aplikacji i zderzyło się z innym identyfikatorem pakietu, którego już wcześniej użyłem. Naprawiłem to, wykonując ponowną instalację:

  1. Znajdź aplikację na ekranie głównym symulatora, naciśnij i przytrzymaj ikonę aplikacji, a App infonastępnie naciśnij , a następnie wybierz „ODINSTALUJ”.

  2. Wykonaj react-native run android.


0

Dzieje się tak ze względu na dostępność poprzedniej wersji Aplikacji, która nie jest zainstalowana na urządzeniu, ale jej dane znajdują się w pamięci urządzenia. Dlatego nie udaje się zaktualizować danych odinstalowanej aplikacji na urządzeniu

Spróbuj tego :

Przejdź do Ustawienia urządzenia ==> Aplikacje (wszystkie aplikacje) ==> wyszukaj swoją aplikację LUB wyszukaj „ klient ” ==> Na ekranie informacji o aplikacji naciśnij opcję potrójnych kropek w prawym górnym rogu ==> wybierz „ Odinstaluj dla wszystkich użytkowników” '==> pojawi się monit wybierz' OK '

U mnie działa za każdym razem, gdy wystąpi ten błąd


0

W moim przypadku problem polegał na tym, że zainstalowałem aplikację o nazwie pakietu, powiedzmy com.example.package, używając Android Studio na moim urządzeniu. Utworzyłem inną aplikację o tej samej nazwie pakietu i próbowałem ją zainstalować na moim urządzeniu. To właśnie było przyczyną problemu. Po prostu sprawdź na swoim urządzeniu, czy inna aplikacja o tej samej nazwie pakietu już istnieje, czy nie.


-1

W moim przypadku odinstalowanie zainstalowanej aplikacji w podłączonym urządzeniu rozwiązało mój problem


-5

Jednocześnie może być otwarty tylko 1 emulator lub urządzenie. Upewnij się, że nie masz uruchomionych wielu emulatorów.

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.