Błąd [INSTALL_FAILED_ALREADY_EXISTS] podczas próby aktualizacji mojej aplikacji


388

gdy próbowałem zaktualizować moją aplikację o nową wersję, która ma taki sam podpis jak poprzednia, pokazuje powyższy błąd.

Czego mi brakuje?

Odpowiedzi:


756

Jeśli instalujesz aplikację na swoim urządzeniu za pośrednictwem adb install, powinieneś poszukać opcji ponownej instalacji, która powinna być -r. Jeśli tak adb install -r, powinieneś móc zainstalować bez wcześniejszego odinstalowywania.


1
adb install -rnie zawsze działa (mam EVO 4G od Sprint, który nie zachowuje się zgodnie z oczekiwaniami). Jedyne obejście, które znalazłem, to ręczne usunięcie aplikacji. Czasami nawet muszę to zrobić za pomocą interfejsu telefonu, ponieważ EVO jest tak temperamentny.
jww

21
Przybyłem tutaj, ponieważ chciałem wiedzieć, czy adb install -rnajpierw usuń, a następnie zainstaluj lub zaktualizuj moją aplikację. Chociaż adbopis nie jest bardzo jasny ( -r: zamień istniejącą aplikację ), adb install -rfaktycznie aktualizuje aplikację i nie usuwa danych aplikacji. Dlatego nadaje się do testowania aktualizacji aplikacji (czyli informacji, których szukałem).
Thibault D.

8
Dla osób twierdzących, adb install -rże nie działa: Myślę, że .apkplik, który próbujesz zainstalować, nie został podpisany tym samym certyfikatem programisty, co .apkplik zainstalowany na urządzeniu. Łatwo zdarza się, jeśli masz zainstalowaną aplikację do debugowania, a następnie próbujesz zainstalować aplikację w wersji Release lub na odwrót. Nie można zaktualizować aplikacji, jeśli nie jest ona podpisana tym samym certyfikatem.
Thibault D.

1
Jeśli korzystasz z wielu kont, może być konieczne odinstalowanie ze wszystkich kont (patrz odpowiedź GregP). To zadziałało dla mnie po tym, jak to zrobiłem.
JD Sandifer

nie działa, moja aplikacja jest aplikacją systemową i to nie rozwiązuje mojego problemu: /
htafoya

11

Ten błąd występuje, ponieważ aplikacja o nazwie pakietu takiej samej jak Twoja aplikacja już istnieje. Jeśli masz pewność, że nie zainstalowałeś wcześniej tej samej aplikacji, zmień nazwę pakietu i spróbuj.

Jeśli chodzi o mądre, oto, co możesz zrobić:

  1. Odinstaluj aplikację z urządzenia: Wybierz Ustawienia -> Zarządzaj aplikacjami i wybierz Odinstaluj LUB
  2. Odinstaluj aplikację przy użyciu interfejsu wiersza polecenia adb: wpisz adb uninstall Po zakończeniu tego kroku spróbuj zainstalować aplikację ponownie.

Moja aplikacja nie pojawiła się w menu lub sklepie z aplikacjami - ale znalazła ją dzięki wskazówkom Mahometa.
DavidP,

2
To nie jest dobre rozwiązanie. Co zrobić, jeśli w aplikacji zapisano kilka stanów, takich jak SharedPrefs? Jeśli odinstalujesz system z trudem, będziesz musiał ponownie skonfigurować aplikację!
IgorGanapolsky

Było to rozwiązanie mi potrzebne adb uninstall my.package. Dziwnie, nie odinstalowałem prefiksów, które chciałem usunąć, ale pozbyłem się pakietu, co blokowało mnie przed ponownym zainstalowaniem.
JMD

6

Może to oznaczać, że aplikacja jest już zainstalowana dla innego użytkownika na twoim urządzeniu. Użytkownicy współużytkują aplikacje. Nie wiem, dlaczego to robią, ale wiedzą. Więc jeśli jeden użytkownik aktualizuje, aplikacja jest aktualizowana również dla drugiego użytkownika. Jeśli odinstalujesz na jednym, nie usunie aplikacji z systemu na drugim.


To był mój dokładny problem! Nie próbowałem odinstalować - zarówno z adb, jak i ręcznie, ale adb install <package.apk>nie powiodło się, mimo że aplikacja nie była już widoczna na liście aplikacji. Okazuje się, że wciąż był tam na innym koncie na moim urządzeniu ... Dzięki!
JD Sandifer

To też mnie naprawiło. Aby uzyskać informacje na temat urządzenia do odinstalowania dla wszystkich użytkowników, musiałem przejść do Ustawienia> Aplikacje stuknij aplikację, stuknij elipsy w prawym górnym rogu i stuknij Odinstaluj dla wszystkich użytkowników.
d219,

3

Żeby zainstalować

adb install -r exampleApp.apk

( -rSprawia, że ​​zastępuje istniejącą kopię, dodaje i -sinstaluje na emulatorze)

Upewnij się, że aplikacja jest podpisana tak samo i ma ten sam debug/releasewariant

Premia

~/.bash_profileUstawiłem w sobie alias , aby było to polecenie 2char.

alias bi="gradlew && adb install -r exampleApp.apk"

(Skrót od kompilacji i instalacji)


0

Jeśli nadal masz problem, spróbuj odinstalować aplikację za pomocą wiersza polecenia. po prostu dodaj polecenie, adb uninstall com.example.yourpackagename a następnie spróbuj ponownie zainstalować. Działa!


0

Na moim tablecie z Androidem 5 za każdym razem, gdy próbuję użyć adb, aby zainstalować podpisaną wersję apk, pojawia się [INSTALL_FAILED_ALREADY_EXISTS]błąd.

Najpierw muszę odinstalować pakiet debugowania. Ale nie mogę odinstalować za pomocą Menedżera aplikacji urządzenia !

Jeśli odinstaluję wersję debugowania za pomocą Menedżera aplikacji , to muszę ponownie uruchomić wariant kompilacji debugowania z Android Studio, a następnie odinstalować za pomocąadb uninstall com.example.mypackagename

Wreszcie mogę użyć, adb install myApp.apkaby zainstalować podpisaną wersję apk.

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.