Mam program pracujący w emulatorze Androida. Od czasu do czasu tworzę podpisany plik .apk i eksportuję go do telefonu HTC Desire w celu przetestowania. Wszystko było w porządku.
Na mojej ostatniej wyeksportowanej aplikacji .apk pojawia się komunikat o błędzie „Aplikacja nie została zainstalowana”, gdy próbuję zainstalować aplikację .apk. Działa dobrze na emulatorach.
Ponieważ głównie testowałem na emulatorach i tylko od czasu do czasu eksportuję na prawdziwy telefon, nie jestem pewien, kiedy to się stało. Jaka jest prawdopodobna przyczyna tego, że nie instaluje się na telefonie fizycznym, ale działa dobrze w emulatorach?
Próbowałem ponownie uruchomić telefon i usunięcie istniejącego .apk, nie naprawia błędu.
android
android-emulator
Entropy1024
źródło
źródło
adb uninstall your.package.name
i wtedyadb install /path/to.apk
. Nie rozumiem, dlaczego to nie zadziała. Czy zmieniłeś coś w procedurze podpisywania?Odpowiedzi:
Przede wszystkim do starszych telefonów
Wystąpił
App not installed
błąd tylko podczas próby zainstalowania aplikacji na moim telefonie działającym na 4.4.2, czyli KitKat, ale mój przyjaciel nie napotkał tego błędu na swoim telefonie, który działa na 6+. Wypróbowałem inne rozwiązania, takie jak usunięcie starej / debugowanej wersji aplikacji, ponieważ apk była wersją wydania, wyczyszczenie danych aplikacji do debugowania, a nawet wyczyszczenie wszystkich moich danych w pamięci podręcznej. Potem w końcu zdałem sobie sprawę, że wszystko, co muszę zrobić, to wybrać obie wersje podpisu podczas budowania podpisanego pliku APK.Zanim tylko wybrałem
V2 (Full APK Signature)
, ale także po wybraniuV1 Jar Signature
, udało mi się pomyślnie zainstalować podpisany pakiet APK na urządzeniu 4.4.2. Mam nadzieję, że to pomaga innym!źródło
V1 (Jar Signature)
Dla mnie na Androidzie 9 (API 28), wyłączenie Google Play Protect z aplikacji Sklep Play zadziałało i udało mi się pozbyć
App not Installed
błędu.źródło
Miałem podobny problem i to dlatego, że próbowałem zainstalować apk na telefonie z poprzednią wersją tego samego apka, a oba apki nie zostały podpisane tym samym certyfikatem. Mam na myśli, że kiedy użyłem tego samego certyfikatu, mogłem zastąpić poprzednią instalację, ale kiedy zmieniłem certyfikat między wersjami, instalacja nie była możliwa. Czy używasz tego samego certyfikatu?
źródło
Oczywiście istnieje wiele przyczyn tego problemu. Dla mnie sytuacja była taka: wdrożyłem na moim Nexusie 7 (rzeczywiste urządzenie) z poziomu Android Studio (v1.3.2). Wszystko działało dobrze. Następnie utworzyłem podpisany plik APK i przesłałem go na Dysk Google. Po odłączeniu nexusa od USB przeszedłem do ustawień / aplikacji i odinstalowałem aplikację (App1). Następnie otworzyłem dysk Google i kliknąłem plik App1.apk i zdecydowałem się go zainstalować (musisz upewnić się, że zezwoliłeś na instalację aplikacji w ustawieniach). Potem dostałem przerażającą wiadomość „Aplikacja nie została zainstalowana”
Rozwiązanie dla mnie: wróć do ustawień / aplikacji i przewiń wszystkie aplikacje, a na dole była blada wersja mojej aplikacji 1 (zwróć uwagę, że oryginalna aplikacja 1 była na górze w kolejności alfabetycznej, która została usunięta jak wyżej). Klikając bladą wersję, napisano „Nie zainstalowano dla tego użytkownika”. (Skonfigurowałem mój nexus, aby mieć więcej niż jednego użytkownika). Ale w prawym górnym rogu znajduje się przycisk z trzema kropkami . Nacisnąłem to i powiedział „Odinstaluj dla wszystkich użytkowników” . Co zrobiłem i to rozwiązało problem. Byłem teraz w stanie kliknąć App1.apk i zainstalował się dobrze bez błędu.
źródło
adb uninstall your.package.name
które odinstalowuje dla wszystkich użytkowników.Napotkałem problem, gdy aktualizuję Androida z 2.3.2 do 3.0.1. W takim przypadku IDE automatycznie rozważy następujące punkty.
1.Nie można zainstalować aplikacji na Androidzie: testOnly = "true" w konwencjonalny sposób, np. Z menedżera plików Androida lub z pobranej strony internetowej
2.Android Studio ustawia Androida: testOnly = "true" w pakietach APK uruchamianych z
jeśli uruchomisz aplikację bezpośrednio podłączając urządzenie do systemu, apk zainstaluje się i nie uruchomi żadnego problemu.
jeśli wysłałeś ten apk przez skopiowanie z wbudowanego folderu put i debugowania, nigdy nie zostanie on zainstalowany na urządzeniu.
Rozwiązanie : przejdź do Kompilacja ---> Kompilacja APK (ów) ---> skopiuj udział pliku apk do swojego zespołu
wtedy twój problem się rozwiąże.
źródło
Napotkałem ten sam problem. Problem polegał na tym, że główna aktywność w moim pliku AndroidManifest.xml została napisana dwukrotnie. Usunąłem duplikat.
źródło
android:exported
ustawiono wartość false dla aktywności wyrzutniMoże się to zdarzyć, jeśli Twoja główna aktywność zostanie zadeklarowana dwukrotnie w pliku AndroidManifest.xml.
Kolejny możliwy powód: zmieniłeś działanie związane z uruchamianiem. Wskazówka: nigdy nie rób tego z już opublikowanymi aplikacjami! Powody omówione na blogu programistów Androida .
źródło
android:name
atrybutem każdyActivity
,Service
,BroadcastReceiver
i tak dalej nie może być zmieniony w pliku manifestu. Chociaż wydaje się, że jest to prywatny identyfikator Twojej aplikacji, jest to publiczny interfejs API.Miałem ten sam problem. Nie zdawałem sobie sprawy, że aplikacja musi zostać podpisana nawet w celu przetestowania.
Po samodzielnym podpisaniu zostało poprawnie zainstalowane.
źródło
Miałem ten sam problem i oto jak go rozwiązać: przejdź do pliku manifestu i upewnij się, że masz ustawione atrybuty „Debuggable” i „Test Only” na false. To zadziałało dla mnie :)
źródło
android:testOnly="false" android:debuggable="false"
Dla tych, którzy korzystają z Android Studio 3.
Odpowiedź Suryanarajany Reddy'ego jest poprawna, ponieważ nie zawiera kroków do jej rozwiązania, dlatego też.
w pliku AndroidManifest.xml pod znacznikiem aplikacji dodaj
testOnly="false"
iandroid:debuggable="true"
polub:Edytuj
następnie w pasku menu AndroidStudio Kompilacja> Kompilacja APK (ów)
źródło
android:debuggable="true"
prowadzi doError: Avoid hardcoding the debug mode; leaving it out allows debug and release builds to automatically assign one [HardcodedDebugMode]
. Próbowałemandroid:testOnly="false"
zarównoBuild > Build Bundl(s) / APK(s) > Build APK(s)
iBuild > Generate SignedBundle APK...
z wersji sygnatur V1, V2 (jak w górę ekranu). Musiałem wcześniej usunąć poprzednią aplikację, a następnie zainstalować nową.Wiem, że to stary post, ale dla nowych użytkowników może być przydatny. Miałem ten sam problem: moja aplikacja działała dobrze podczas debugowania. Kiedy podpisałem APK, otrzymałem ten sam komunikat: „Aplikacja nie została zainstalowana”.
Naprawiłem, że odinstalowałem mój JDK (korzystałem z jdk-6u14-windows-x64) i zainstalowałem nowy (jdk-6u29-windows-x64). Po wyeksportowaniu i ponownym podpisaniu APK wszystko było w porządku!
Wracając, mój problem dotyczył wersji JAVA. Dzięki Oracle!
źródło
Mój problem polegał na tym, że mam wiele kont użytkowników na urządzeniu. Usunąłem aplikację na 1 koncie, ale nadal była zainstalowana na drugim koncie. Przestrzeń nazw zderzyła się i nie została zainstalowana. Odinstalowanie aplikacji od wszystkich użytkowników naprawiło ją dla mnie.
źródło
Mój problem polegał na tym: korzystałem z Apk debugowania, który został wygenerowany podczas wykonywania polecenia Uruchom z Android Studio
Rozwiązanie było: Zamiast używać tego pliku, wyczyść projekt i kliknij Kompiluj> Kompiluj APK (y) z Android Studio. Następnie możesz użyć wygenerowanego pliku APK ze zwykłego folderu (app / build / Output / apk / debug /)
Tak wygenerowany plik został zainstalowany bez problemu.
źródło
Jeśli aplikacja się nie instaluje, usuń plik
.android_secure/smdl2tmpl.asec
z karty SD.Jeśli folder
.android_secure
jest pusty w menedżerze plików, usuń go z komputera.źródło
W końcu dowiedziałem się, że żadna aplikacja nie została pomyślnie zainstalowana, tylko moja. Ustawiłem domyślną opcję Instaluj aplikację z karty SD na Automatyczną. To naprawiło to.
źródło
Jeśli masz poprzednią wersję dla tej aplikacji, spróbuj ją najpierw usunąć, teraz mój problem został rozwiązany tą metodą.
źródło
Rozwiązałem również ten problem,
Problem polegał na tym, że zadeklarowałem moją główną aktywność dwa razy, On jako pierwszą aktywność do załadowania i podałem też dla niej filtr zamiaru. I jeszcze raz pod nią zadeklarowałem ją ponownie.
Upewnij się tylko, że nie deklarujesz dwukrotnie swoich działań.
źródło
Manifest.xml
pliku, pojawi się błąd kompilacji, chyba że masz te same działania o tej samej nazwie, ale w różnych pakietach, ALE to nie działa ze mną, ponieważ sprawdziłem wszystko.utwórz plik magazynu kluczy za pomocą wiersza poleceń
keytool -genkey -alias nazwa_pliku_klucza.keystore -keyalg RSA -validity 1000000000000000 -keystore nazwa_pliku_klucza.keystore
wyeksportuj apk przez Eclipse, kliknij prawym przyciskiem myszy projekt Android Narzędzia Android> Eksportuj podpisany pakiet aplikacji , a następnie podaj lokalizację i hasło do magazynu kluczy.
spowoduje to podpisanie apk w tym samym czasie, gdy apk zostanie zip. I do zainstalowania.
Jeśli przejdziesz do wiersza poleceń dla wszystkich, czasami możesz napotkać błąd „Aplikacja nie została zainstalowana”. (Błąd niezainstalowany aplikacji może się zdarzyć nie tylko podczas korzystania z wiersza poleceń. Może to być także inne powody)
źródło
Miałem ten sam problem, tj. Aplikacja pojawiła się jako zainstalowana, ale nie uruchomiła się po stuknięciu ikony. Po pewnym uderzeniu głową odkryłem, że głupio umieściłem „android: exported =" false "'dla mojej głównej aktywności uruchamiania w pliku AndroidManifest .... Po jego usunięciu aplikacja uruchomiła się dobrze.
źródło
Mój problem był podobny do tego z @Lunatikzx. Z powodu niewłaściwego znacznika uprawnień, który został zapisany jako atrybut aplikacji:
Naprawiłem to, zmieniając tag uprawnień, aby rozdzielić taki tag:
źródło
Aplikacje do debugowania bocznego do testowania na telefonie fizycznym działały niezawodnie, dopóki nie uaktualniłem telefonu z Androida Pie do Androida 10. Następnie za każdym razem, gdy próbowałem sideloadować aplikację, pojawiał się błąd „Aplikacja nie została zainstalowana”.
Na podstawie ostrzeżenia w moim AndroidManifest.xml zmieniłem z ...
do...
Potem mogłem raz załadować aplikację. Następnie ponownie napotkałem ten sam błąd „Nie zainstalowano aplikacji”. Po zmianie z
allowBackup
powrotemtrue
działało to ponownie (przynajmniej raz).Z liczby odpowiedzi i ich różnorodności wynika, że istnieje wiele przyczyn tego problemu. Udostępniam to na wypadek, gdyby pomogło to innym.
źródło
android:allowBackup="true"
doandroid:allowBackup="false"
i nadal nie ma szczęścia.Sprawdź wersję Androida.
Jeśli instalujesz aplikacje nierynkowe i niekompatybilną wersję, pojawi się ten błąd.
Np .: Aplikacja kierowana na 2.3.4 Twoje urządzenie ma wersję 2.2. Wtedy pojawi się ten błąd.
źródło
build.gradle
ani w pliku manifestu Androida. Chyba żecompileSdkVersion
(wartość 23) lubminSdkVersion
(16) lubtargetSdkVersion
(22) w jakiś sposób wskazują pożądane ustawienie. Moja galaktyka ma Androida 7.0 (i prosi o aktualizację, ale jeszcze na to nie zezwalam). Nie używam Androida Studio do budowania mojej aplikacji, ale raczejgradlew assembleRelease
Błąd „Aplikacja nie została zainstalowana” może również wystąpić, jeśli aplikacja została zainstalowana lub przeniesiona na kartę SD, a następnie kabel USB został podłączony, powodując odmontowanie karty SD.
Wyłączenie pamięci USB lub przeniesienie aplikacji z powrotem do pamięci wewnętrznej rozwiązałoby problem w tym przypadku.
źródło
Zetknąłem się również z tym problemem. Wypróbuj to rozwiązanie. Upewnij się, że nazwa pakietu projektu różni się od poprzedniego projektu, który był już zainstalowany w telefonie komórkowym. Myślę, że mają konflikt w swoich nazwiskach. To działa we mnie.
źródło
Możesz również napotkać ten problem, ponieważ producent urządzenia nie udzielił licencji na komercyjne aplikacje Google, takie jak Sklep Play, YouTube, Mapy Google itp. Postępuj zgodnie z tą odpowiedzią, aby rozwiązać problem.
źródło
Najwyraźniej może to być również spowodowane zmianą nazwy pliku APK przed jego zainstalowaniem. Chciałem zmniejszyć liczbę operacji pisania, które musieli zrobić użytkownicy, aby pobrać aplikację z naszej strony internetowej, skracając nazwę pliku. Potem nie byli w stanie go zainstalować.
Po przywróceniu oryginalnej nazwy pliku użytej podczas tworzenia i podpisywania pakietu mogłem zaktualizować zainstalowaną aplikację.
źródło
Korzystając z Android Studio, wcześniej zainstalowałem niepodpisaną wersję debugowania APK ( kompilacja> kompilacja APK ) i musiałem ją odinstalować przed zainstalowaniem podpisanej wersji ( kompilacja wariantów> kompilacja wariantu: wydanie , kompilacja> wygeneruj podpisany APK ).
źródło
dla mnie przyczyną było to, że miałem wiele kompilacji przy użyciu różnych wariantów kompilacji na tym samym telefonie:
stało się tak, że niektóre z tych kompilacji zostały zbudowane przeze mnie , kolejna została wysłana do mnie przez innego programistę .. próba zainstalowania programistów, gdy miałem inne kompilacje (zbudowane przeze mnie) spowodowało powyższy błąd.
więc poprawka była prosta: usuń wszystkie kompilacje na moim telefonie (niezależnie od wariantu kompilacji) .. następnie zainstaluj apk wysłany przez mojego partnera .. i działało to jak urok
źródło
Dzisiaj spotkałem się z podobnym problemem i na początku myślałem, że to moja karta SD go zepsuła. Próbowałem go na wielu urządzeniach z Androidem 4.4 i nowszym, ale nadal pojawiał się ten sam problem. Po kilku wyszukiwaniach i wyszukiwaniu zorientowałem się, że nie wybrałem sygnatury jar v1, która jest dla urządzeń starszych niż Android 7.0 nougat, więc zastosowałem oba te podpisy, zaznaczając dwa pola wyboru i wygenerowały podpisany plik APK i zadziałało.
Link do rozwiązania Android - Błąd instalacji aplikacji podczas instalowania podpisanego pliku APK - Jak to naprawić
źródło
Może się to również zdarzyć podczas tworzenia widżetu ekranu głównego, a plik XML widżetu ma niepoprawną aktywność określoną we
android:configure
właściwości.źródło