Nie można ręcznie zainstalować podpisanego pliku APK na urządzeniu, wystąpił błąd „Nie zainstalowano aplikacji”

107

Chciałbym opublikować moją aplikację w GooglePlay, ale najpierw chciałbym przeprowadzić ostatnie testy z podpisanym plikiem APK, aby upewnić się, że wszystkie używane klucze API działają poprawnie z wersją wydania (GMaps, Facebook itp.)

Właśnie utworzyłem podpisaną wersję mojej aplikacji za pomocą naszego klucza do wydania, a kiedy próbuję zainstalować aplikację na urządzeniu, pojawił się błąd:

wprowadź opis obrazu tutaj

Próbowałem skopiować plik APK na urządzenie i zainstalować go za pomocą aplikacji instalatora apk.

Dziwne jest to, że kiedy robię ten sam proces z kluczem do debugowania, wszystko jest w porządku, mogę zainstalować i uruchomić aplikację.

Oto kroki procedury:

I wybierz przycisk zwalniający , wpisz hasło.

Oto kroki procedury:

Robię wybierz typ kompilacji release zamiast debugowania

Wybieram typ kompilacji wydania zamiast debugowania

Na wszelki wypadek zdefiniowałem również w pliku gradle klucze podpisu, ale muszę przyznać, że nie wiem, czy jest to konieczne.

Na wszelki wypadek zdefiniowałem również w pliku gradle klucze podpisu, ale muszę przyznać, że nie wiem, czy jest to konieczne.

Próbowałem teraz siedem razy, więc zakładam, że ten problem nie jest tylko błędnym hasłem , ale mogę również sprawić, że zadziała ze standardowym kluczem podpisywania debugowania Androida.

Proszę o pomoc, jeśli możesz.

Adam Varhegyi
źródło
1
Salam. Ta odpowiedź może rozwiązać Twój problem: http://stackoverflow.com/a/42745459/1676736
Sayed Abolfazl Fatemi
mam ten sam problem. Jaki był prawdziwy powód? Znalazłeś to? @Adam Varhegyi
Rohit Singh
@RohitSingh Odpowiedź poniżej, lol.
Adam Varhegyi,
Mam na myśli, że aplikacja nie została całkowicie odinstalowana, nawet jeśli została odinstalowana? Lub jest to rzecz tylko Android 5.0 (lub nawet wyżej).
Rohit Singh,
1
@RohitSingh Mój problem był dokładnie taki, jak opisuje odpowiedź. Aplikacja została zainstalowana na telefonie dla innego użytkownika i nie widziałem jej z innym użytkownikiem. Musiałem więc odinstalować go dla „Wszystkich użytkowników”
Adam Varhegyi,

Odpowiedzi:

81

Być może używasz urządzenia z Androidem 5.0 lub nowszym.

Po prostu przejdź do Ustawienia -> Aplikacje -> Kliknij swoją aplikację. ---> Na stronie informacji o aplikacji w menu paska akcji pojawi się opcja „Odinstaluj dla wszystkich użytkowników”. Kliknij to. Twoja aplikacja zostanie całkowicie odinstalowana i możesz teraz bez problemu spróbować zainstalować nową wersję. Mam nadzieję, że to ci pomoże

Sprawdź moje rozwiązanie z poniższego linku.

Link 1

Mam nadzieję, że to ci pomoże.

Ragu Swaminathan
źródło
Jak, u diabła, mogli to zrobić w ten sposób. Przy okazji dzięki pracy.
Adam Varhegyi
2
Chociaż ten link może odpowiedzieć na pytanie, lepiej jest zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie.
SOFe,
Człowieku, dziękuję bardzo, zajęło mi tydzień, zanim się zorientowałem
Diego Vinícius
Cieszę się, że ci pomogłem !! @ Diego Vinícius
Ragu Swaminathan
66

Dla obecnych Updated Android Studio 2.3użytkowników ta odpowiedź jest dla Ciebie, ponieważ w dzisiejszych czasach mało kto używa Eclipse do tworzenia aplikacji na Androida, ponieważ Android Studio ma ogromne postępy.

Więc postępuj zgodnie z tym sposobem, aby utworzyć Signed apkplik.

  1. Build> Generuj Signed apk.
  2. Twórz Keystore path.
  3. Połóż Password, alias, key password.
  4. Build typewybierz odpowiednio (np. aby wydać w użytku w Playstore release).
  5. Signature Versionzaznacz oba V1i V2pola wyboru.
  6. Finsih.
  7. Przejdź do explorermiejsca, w którym wybrałeś apk do zapisania, a zobaczysz .apknazwę swojego pliku jako app-release.apkużywaną.
Crime_Master_GoGo
źródło
14
Wybór sygnatury V1 zrobił to
Meanman
zaoszczędziłeś mi dużo czasu
curiousMind
Pracuj dla mnie. Oszczędzaj czas . Dzięki
YeeKhin
6
Sprawdzanie obu V1i V2było rozwiązaniem!
Alex Jolig
1
Sprawdzenie V1 rozwiązało problem za mnie. Wcześniej sprawdzano tylko V2.
BluJ IT
52

wybranie wersji Signature Version v1 i v2 rozwiązało problem za mnie ... spróbujwprowadź opis obrazu tutaj

Shubhamhackz
źródło
4
To był dokładnie mój problem. pozostaje pytanie, dlaczego powinniśmy również oznaczyć V1 (sygnatura jar)? i jak Google oczekuje, że będziemy o tym wiedzieć?
A. Alqadomi,
Nie jest to obowiązkowe. Powinieneś zaznaczyć OBIE te pola wyboru, jeśli to możliwe, ale jeśli nowy mechanizm podpisywania V2 sprawia problemy, możesz po prostu zaznaczyć oba, jeśli napotkasz problemy.
Shubhamhackz
43

To samo przytrafiło mi się, o ile wygenerowałem swój apk z Build> Build APK. Mogłem instalować i odinstalowywać apk tyle razy, ile były bez żadnego problemu, ale zamiast tego, gdybym wygenerował kompilację> Generuj podpisany plik APK, kiedy przekazałem apk do telefonu i spróbowałem go zainstalować, pozwolił mi to tylko na jeden okazja, ta sama, która wyszła następująca wiadomość:

wprowadź opis obrazu tutaj

do tego czasu wszystko było w porządku, jeśli wybrałem „ZAINSTALUJ W DOWOLNY SPOSÓB”, ale co się stało, gdy odinstalowałem aplikację i chciałem ją ponownie zainstalować (możliwy scenariusz), wydarzyło się co następuje:

wprowadź opis obrazu tutaj

więc rozwiązałem problem, wyłączając ochronę odtwarzania, co osiągnąłem (w Google Play)> Menu> Play Protect> Wyszukaj zagrożenia bezpieczeństwa (wyłącz).

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Gerrard
źródło
To rozwiązanie działa u mnie. Kolejna zmiana wprowadzona przez Google +1
Gotowy na Androida
Uratowałeś mi życie!
akcoban
Czy mógłbyś nam powiedzieć, dlaczego tak się dzieje? Co robię źle, co powoduje, że jest to rozwiązanie?
Sparkhead95
16

Komunikat „Nie zainstalowano aplikacji” wyświetla się, gdy aplikacja z tym samym pakietem jest już zainstalowana na tym samym urządzeniu. po prostu usuń pierwszą aplikację, której używałeś do celów testowych, zanim przejdziesz do podpisanego pliku APK. To zadziała. Twoje zdrowie!

Tara
źródło
8
Tak, wiem, ale nie jest to wcześniej zainstalowane.
Adam Varhegyi
6
Jak mogę zainstalować apk w wyższej wersji bez usuwania bieżącej aplikacji?
user7856586
12

Wybierz wersję Signature Version v1 i v2, aby rozwiązać problem

wprowadź opis obrazu tutaj

schemat v1

Plik JAR można podpisać za pomocą narzędzia jarsigner wiersza poleceń lub bezpośrednio przez interfejs API java.security. Każdy wpis pliku, w tym pliki niezwiązane z podpisami w katalogu META-INF, zostanie podpisany, jeśli plik JAR jest podpisany przez narzędzie jarsigner. Dla każdego wpisu do pliku podpisanego w podpisanym pliku JAR tworzony jest dla niego indywidualny wpis manifestu, o ile nie istnieje jeszcze w manifeście

Schemat V2

Podpisy v1 nie chronią niektórych części APK, takich jak metadane ZIP. Weryfikator APK musi przetworzyć wiele niezaufanych (jeszcze nie zweryfikowanych) struktur danych, a następnie odrzucić dane nieobjęte podpisami. Daje to sporą powierzchnię ataku. Ponadto weryfikator APK musi zdekompresować wszystkie skompresowane wpisy, pochłaniając więcej czasu i pamięci. Aby rozwiązać te problemy, w systemie Android 7.0 wprowadzono schemat podpisu APK v2

Domyślnie Android Studio 2.2 i wtyczka Android dla Gradle 2.2 podpisują Twoją aplikację przy użyciu zarówno schematu podpisu APK v2, jak i tradycyjnego schematu podpisywania, który wykorzystuje podpisywanie JAR.

Zaleca się korzystanie z APK Signature Scheme v2, ale nie jest to obowiązkowe. zobacz szczegóły

Lineesh K Mohan
źródło
10

W Android Studio 3.0 i nowszych

Jak opisano tutaj

Uwaga: przycisk Uruchom tworzy plik APK z testOnly = "true", co oznacza, że ​​plik APK można zainstalować tylko przez adb (z którego korzysta Android Studio). Jeśli chcesz debugowalnego pliku APK, który ludzie mogą zainstalować bez adb, wybierz wariant debugowania i kliknij Utwórz pakiety / pliki APK> Utwórz pliki APK.

Dodaj android:testOnly="false"wewnętrzny tag aplikacji w pliku AndroidManifest.xml

Źródła: https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html

Ketan Ramani
źródło
7

Powyższa odpowiedź shubham soni działa dla mnie, w rzeczywistości dzieje się tak z wersją Androida> = 5.0, W powyższym możesz zainstalować po prostu użyj tego podczas tworzenia apk wprowadź opis obrazu tutaj...

Amit raj
źródło
1
dlaczego ta podwójna odpowiedź?
sziraqui
@sziraqui: Subhankar soni nie wspomniał, dlaczego „Nie można ręcznie zainstalować podpisanego apk na urządzeniu, wystąpił błąd„ Aplikacja nie została zainstalowana ”. Napotkałem ten sam problem związany z wersją systemu operacyjnego, jak wspomniałem powyżej, więc dla lepszego zrozumienia wspomniałem o tym. coś nie tak w mojej odpowiedzi? .Dla Androida w wersji <= 5.0 będzie można zainstalować ten sam apk bez zaznaczania pól wyboru obu wersji podpisów.
Amit raj
Twoja odpowiedź polega po prostu na dodaniu jeszcze jednego punktu do oryginalnej odpowiedzi, więc powinien to być komentarz. Jeśli publikujesz to jako odpowiedź, powinieneś dodać coś w rodzaju cytatu potwierdzającego twoje roszczenie dotyczące Androida 5.0. Co jeśli twój problem był faktycznie związany z Androidem IDE, a nie z wersją Androida?
sziraqui
Dzięki, zdjęcie w odpowiedzi podsunęło mi pomysł, aby wypróbować włączone podpisy V1 i V2. Wcześniej jechałem tylko z V1
jasxir
6

Tutaj rozwiązałem ten problem

Przyczyną tego problemu jest to, że w telefonie jest już aplikacja o tej samej nazwie pakietu, ale nie możesz jej znaleźć w menu telefonu (już odinstalowałeś, ale w rzeczywistości jest nadal w telefonie).

Aby zobaczyć aplikację, przejdź do USTAWIENIA telefonów -> APLIKACJE . Tam możesz zobaczyć aplikację, ale w środku przycisk ODINSTALUJ może być wyłączony. kliknij przycisk przepełnienia menu, aby wyświetlić opcję Odinstaluj dla wszystkich użytkowników .

Po wykonaniu odinstalowania dla wszystkich użytkowników pomyślnie zainstalowałem podpisany apk. Możesz także użyć adb, aby odinstalować aplikację z telefonu.

adb uninstall package name

Ponadto, jeśli Twój telefon komórkowy obsługuje wielu użytkowników, sprawdź, czy odpowiednia aplikacja nie jest zainstalowana dla innych użytkowników. Jeśli jest zainstalowany dla innych, najpierw odinstaluj poprzednią aplikację i spróbuj ponownie

Alex Chengalan
źródło
4

To dość stare pytanie, ale moim rozwiązaniem była zmiana versionCode (zwiększenie) w build.gradle

mateusz-dot
źródło
4

Idź do Build.Gradle (moduł: aplikacja)

użyj tego - minifyEnabled false

Abhinav Pandey
źródło
4

minifyEnabled false

jest jedynym, który u mnie zadziałał po 3 dniach poszukiwań na całym forum!

Toto1
źródło
1
Wygląda na to, że jest to tylko powtórka istniejącej odpowiedzi .
Pang
Z dodanym komentarzem.
robinCTS
Innymi słowy, powinno to zostać opublikowane jako komentarz do tej odpowiedzi , a nie jako odpowiedź sama w sobie.
robinCTS
3

Może tak być, ponieważ uruchamiasz plik APK z zewnętrznej pamięci karty SD. Po prostu skopiuj plik APK do wewnętrznej pamięci masowej, problem zostanie rozwiązany

Vu Thai Duy
źródło
1

Może się to zdarzyć z powodu wyboru wersji podpisu. Na niektórych telefonach błędy instalacji występują, jeśli wersja sygnatury została wybrana jako V2. Więc jeśli tak się stanie, spróbuj wybrać V1, na pewno zadziała.

Prashant Paliwal
źródło
1

Dzisiaj stanąłem przed tym samym problemem, przypomniałem sobie, że podpisałem swój apk „nowym” podpisem Google Play:


wprowadź opis obrazu tutaj


Upewnij się, że podpisałeś swoją aplikację za pomocą podpisu Google Play.

Jeśli tak:

  • Zainstaluj aktualizację, przesyłając swój plik APK do konsoli Google (tak jak zwykle robisz to podczas aktualizowania aplikacji):

wprowadź opis obrazu tutaj


  • Po pomyślnym przesłaniu otwórz Artifact libraryw menu.
  • Zobaczysz właśnie przesłany plik APK.
  • Naciśnij przycisk pobierania i wybierz Download derived APK.

Teraz będziesz mógł zainstalować apk.

HB.
źródło
0

jeśli Twoja wersja Android Studio wyższa niż 3.0

Wygląda na to, że nie możemy bezpośrednio użyć apk po uruchomieniu na urządzeniu z folderu build -> output-> apk.

Po aktualizacji do Android Studio 3.0 musisz przejść do Build -> Build Apk (s), a następnie skopiować apk z build -> output -> apk -> debug

wprowadź opis obrazu tutaj

Keshav Gera
źródło
Tytuł tego pytania - "Cannot install signed apk". Masz na myśli debugowanie apk.
KRK
0

Plik> Struktura projektu> Utwórz warianty> Wybierz wersję> Upewnij się, że pozycja „Konfiguracja podpisywania” nie jest pusta> jeśli zostanie wybrana w oknie upuszczania $signingConfigs.release

Zrobiłem to w Android Studio 3.1.4 i pozwoliło mi to na utworzenie apk wydania po wykonaniu wszystkich powyższych kroków tworzenia pakietu apk wydania i klucza wydania oraz dodaniu informacji do gradle aplikacji. Twoje zdrowie!

Treewallie
źródło
$signingConfigs.releasenie jest dostępny, tylko $signingConfigs.debugjest dostępny.
KRK
Następnie przejdź do Build> Generate APK> Select APK i postępuj zgodnie z instrukcjami.
Treewallie,
0

Miałem ten sam problem w mojej aplikacji na Androida. Po prostu zaktualizowałem bibliotekę, a następnie utworzyłem plik APK ze znakiem. Teraz jego praca.

shailesh
źródło
0

Nie musisz odinstalowywać wersji Google Play, jeśli funkcja Podpisywanie aplikacji przez Google Play jest włączona dla Twojej aplikacji, wykonaj następujące czynności:
1. Utwórz podpisaną wersję aplikacji za pomocą klucza do wydania
2. Przejdź do konsoli programisty Google Play
3. Utwórz zamkniętą wersję ścieżki (wersja alfa lub beta) z nową podpisaną wersją swojej aplikacji
4. Możesz teraz pobrać apk podpisany przez podpisywanie aplikacji przez Google Play , wybierz pochodną wersję APKwprowadź opis obrazu tutaj

  1. Zainstaluj pobrany pakiet APK

Powodem jest to, że podpisywanie aplikacji przez Google Play oznacza wydawanie aplikacji z różnymi kluczami, jeśli masz aplikację zainstalowaną ze Sklepu Play i chcesz przetestować aplikację w nowej wersji (wygenerowaną z Android Studio) na telefonie, „Aplikacja niezainstalowana” dzieje się, ponieważ stara i nowa wersja zostały podpisane dwoma różnymi kluczami: jednym z podpisem aplikacji przez Google Play i jednym z Twoim kluczem.

Abduaziz Kayumov
źródło
0

Usunięcie android:testOnly="true"atrybutu z pliku AndroidManifest.xml działało. połączyć

Sachin K.
źródło
0

Prosimy odinstaluj aplikację do debugowania na urządzeniu lub po prostu zwiększ kod wersji, aby rozwiązać ten problem

Jaaveeth
źródło
0

W moim przypadku próbowałem przetestować instalację podpisanego pliku APK, a aktualnie zainstalowana wersja na moim urządzeniu była niepodpisana (budowanie wersji debugowania bezpośrednio ze studia Android)

policenauts
źródło
0

To oczywiste, ale wciąż ciężko było mi to rozgryźć,

Sprawdź, czy Twoje urządzenie mobilne ma wystarczająco dużo miejsca, aby zainstalować apk. i nie jest pełny.

Makarand
źródło