W moim emulatorze, gdy próbuję programowo zaktualizować mój apk. Dostaję:
Android App Not Install.
An existing package by the same name with a conflicting signature is already installed
Nadal jestem w fazie testów tej aktualizacji, więc pobrany przeze mnie plik to podpisany apk poprzedniej wersji, który moim zdaniem powinien działać bez żadnych problemów.
Z sugestii w: istniejący pakiet o tej samej nazwie z niezgodnym podpisem jest już zainstalowany. Próbowałem uruchomić emulator zarówno w trybie debugowania, jak iw trybie normalnym ... żaden nie działał.
Jakieś przemyślenia na temat tego, czego mi brakuje?
android
android-install-apk
James Oravec
źródło
źródło
Odpowiedzi:
Problem polega na tym, że klucze, które zostały użyte do podpisania plików APK, domyślnie, jeśli uruchamiasz bezpośrednio ze swojego IDE i otwierasz emulator, pakiet APK zainstalowany w emulatorze jest podpisany kluczem debugowania (zwykle instalowanym w ~ / .android /debug.keystore), więc jeśli poprzedni plik APK został podpisany innym kluczem niż ten, którego obecnie używasz, zawsze pojawi się konflikt podpisów, aby go naprawić, upewnij się, że używasz tego samego klucza do podpisania oba pliki APK, nawet jeśli poprzedni plik APK został podpisany kluczem debugowania z innego zestawu SDK, klucze na pewno będą inne.
Również jeśli nie wiesz dokładnie, jaki klucz został użyty wcześniej do podpisania apk, a mimo to chcesz zainstalować nową wersję swojej aplikacji, możesz po prostu odinstalować poprzednią aplikację i ponownie zainstalować nową.
Mam nadzieję że to pomoże...
Pozdrowienia!
źródło
Miałem ten sam komunikat o błędzie, ale te odpowiedzi nie pomogły. Na Nexusie 7 4.3 korzystałem z użytkownika, który NIE był właścicielem. Odinstalowałem starszą wersję, ale wciąż otrzymywałem ten sam komunikat.
Rozwiązanie: musiałem zalogować się jako właściciel i przejść do opcji Ustawienia -> Aplikacje, a następnie przesunąć palcem do karty Wszystkie. Przewiń w dół do samego końca listy, na której wymienione są starsze wersje ze znakiem „niezainstalowane”. Wybierz go i naciśnij przycisk „Ustawienia” w prawym górnym rogu, a na końcu „Odinstaluj dla wszystkich użytkowników”
źródło
Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.
Wybierz Ustawienia> Aplikacje, znajdź i otwórz informacje o aplikacji. Następnie otwórz rozszerzone menu (3 kropki w pionie) i wybierz Odinstaluj dla wszystkich użytkowników.
źródło
Jeśli nie chcesz zawracać sobie głowy plikiem kluczy, po prostu usuń pakiet dla wszystkich użytkowników.
Podłącz urządzenie do komputera Mac / PC i uruchom
adb uninstall <package>
Pracował dla mnie.
Ref: /android/92025/how-to-completely-uninstall-an-app-on-android-lollipop
źródło
Istnieje różnica między podpisanymi i niepodpisanymi plikami APK. Najprawdopodobniej miałeś tam wcześniej niepodpisany. Musisz tylko usunąć niepodpisaną wersję przed zainstalowaniem podpisanej wersji. Sposób, w jaki można to osiągnąć, zależy od dokładnej wersji, ale ogólnie przejdź do emulatora do ustawień-> aplikacja, długo kliknij swoją aplikację i usuń / usuń / odinstaluj ją.
źródło
app not installed
. Sprawdziłem ustawienia emulatora iAllow installation of apps from unknown sources
sprawdziłem. Więc to nie wydaje się być rozwiązaniem.Jeśli korzystasz z aplikacji do debugowania, klucz używany do logowania się znajduje
C:\Users\<user>\.android\debug.keystore
Jeśli użyjesz tego samego klucza, nie powinno być konfliktu podczas instalacji.
źródło
Jeśli powyższe rozwiązania nie zadziałały, być może musisz wykonać następujące czynności.
1) instalacja aplikacji z Appstore.
2) zaktualizowanie go za pomocą podpisanego pliku APK z zaktualizowaną wersją tej samej nazwy pakietu.
Zasadniczo istnieją dwa rodzaje plików APK.
1) przesłany przez Ciebie do Playstore znanego jako oryginalny plik APK.
2) pobierz z playstore znanego jako pochodny APK.
W tym przypadku w zasadzie pobierasz pochodny apk i aktualizujesz go o oryginalny plik APK.
Aby działało dobrze, załaduj nowy podpisany wydany plik APK w trybie testu wewnętrznego w sklepie Google Play i pobierz pochodny plik APK, aby sprawdzić scenariusz aktualizacji.
źródło
Jeśli korzystasz z wielu użytkowników Androida, sprawdź, czy aplikacja jest odinstalowana wszędzie.
źródło
Wystąpił problem polegający na tym, że zarówno kompilacja do debugowania, jak i wersja wydania nie zostaną zainstalowane na urządzeniach, których używałem do debugowania. Ta sama wiadomość pojawiłaby się podczas próby zainstalowania nowej wersji. Jedynym obejściem było odinstalowanie aktualnej wersji i zainstalowanie nowej.
Wygląda na to, że Android Studio oznacza instalowany apk, aby instalacja za pomocą menedżerów pakietów rozróżniła wersję zainstalowaną do debugowania od wersji pobranych z Google Play lub innych źródeł zewnętrznych (nigdy mi się to nie zdarzyło podczas korzystania z eclipse).
źródło
Być może aplikacja nie została pomyślnie odinstalowana. Jeśli Twoje urządzenie jest w tym przypadku, możesz wypróbować tę metodę.
Najpierw pobierz nazwę pakietu aplikacji, np. „Com.xxx.app”, możesz użyć Root Explorer i znaleźć go w pliku manifestu (RE może zdekodować plik). następnie możesz użyć tego skryptu, aby go odinstalować:
adb shell pm uninstall com.xxx.app // replace to package name that you want to remove
źródło
Ten sam błąd pakietu:
źródło
Musiałem zalogować się jako właściciel i przejść do Ustawienia -> Aplikacje, a następnie przesunąć palcem do karty Wszystkie. Przewiń w dół do samego końca listy, na której wymienione są starsze wersje ze znakiem „niezainstalowane”. Wybierz go i naciśnij przycisk „Ustawienia” w prawym górnym rogu, a na końcu „Odinstaluj dla wszystkich użytkowników”
źródło
Wypróbowałem wszystkie powyższe i nie zadziałało.
Zauważyłem, że pomimo odinstalowania aplikacji, nowa wersja aplikacji nadal wyświetla ten sam błąd.
Oto, co go rozwiązało: przejdź do Ustawienia -> Ogólne -> Menedżer aplikacji -> wybierz swoją aplikację -> kliknij trzy kropki u góry -> odinstaluj dla wszystkich użytkowników
Gdy to zrobisz, teraz zostanie faktycznie odinstalowany i pozwoli na zainstalowanie nowej wersji.
Mam nadzieję że to pomoże.
źródło
Może istnieć inny powód, dla którego aplikacja nie zostanie zaktualizowana po zmianie / dodaniu / usunięciu shareId w AndroidManifiest.
„android: sharedUserId”
Sprawdź to również.
Aby temu zapobiec, zalecamy użycie sharedUserId w aplikacji, pomimo aktualnych wymagań, których potrzebujesz lub teraz.
źródło