Signierte apk kann nicht manuell auf dem Gerät installiert werden, Fehler "App nicht installiert"

107

Ich möchte meine App auf GooglePlay veröffentlichen, aber zuerst möchte ich einen letzten Test mit der signierten apk durchführen, um sicherzustellen, dass alle verwendeten API-Schlüssel mit der Release-Version (GMaps, Facebook usw.) ordnungsgemäß funktionieren.

Also habe ich gerade eine signierte Version meiner App mit unserem Release-Schlüssel erstellt und als ich versuche, die App auf dem Gerät zu installieren, habe ich eine Fehlermeldung erhalten:

Geben Sie hier die Bildbeschreibung ein

Ich habe versucht, die apk auf das Gerät zu kopieren und mit einer apk-Installations-App zu installieren.

Seltsam ist, wenn ich den gleichen Prozess mit dem Debug-Signaturschlüssel mache , ist alles in Ordnung, ich kann die App installieren und ausführen.

Hier sind die Schritte des Verfahrens:

Ich wähle den Freigabeschlüssel aus und gebe das Passwort ein.

Hier sind die Schritte des Verfahrens:

Ich wähle den Release-Build-Typ anstelle des Debuggens

Ich wähle den Release-Build-Typ anstelle des Debuggens

Nur für den Fall, dass ich auch in der Gradle-Datei die Signaturschlüssel definiert habe, aber ich muss zugeben, dass ich nicht weiß, ob es notwendig ist.

Nur für den Fall, dass ich auch in der Gradle-Datei die Signaturschlüssel definiert habe, aber ich muss zugeben, dass ich nicht weiß, ob es notwendig ist.

Ich habe es jetzt sieben Mal wie 7 versucht, also gehe ich davon aus, dass dieses Problem nicht nur ein falsch eingegebenes Passwort ist , sondern ich kann dies auch mit dem Standard-Debug-Android-Signaturschlüssel zum Laufen bringen .

Bitte helfen Sie, wenn Sie können.

Adam Varhegyi
quelle
1
Salam. Diese Antwort kann Ihr Problem lösen: http://stackoverflow.com/a/42745459/1676736
Sayed Abolfazl Fatemi
Ich stehe vor dem gleichen Problem. Was war der wahre Grund? Hast du es herausgefunden? @ Adam Varhegyi
Rohit Singh
@RohitSingh Die Antwort unten, lol.
Adam Varhegyi
Ich meine, die App wurde nicht vollständig deinstalliert, auch wenn Sie deinstalliert wurden? Oder es ist eine Sache nur Android 5.0 (oder sogar höher).
Rohit Singh
1
@RohitSingh Mein Problem war genau so, wie es die Antwort beschreibt. Die App wurde für einen anderen Benutzer auf dem Telefon installiert, und ich habe sie bei einem anderen Benutzer nicht gesehen. Also musste ich es für "Alle Benutzer" deinstallieren
Adam Varhegyi

Antworten:

81

Möglicherweise verwenden Sie das Gerät Android 5.0 oder höher.

Gehen Sie einfach zu Einstellungen -> Apps -> Klicken Sie auf Ihre App. ---> Auf der App-Infoseite im Aktionsleistenmenü gibt es eine Option namens "Für alle Benutzer deinstallieren". Klicken Sie darauf. Ihre App wird vollständig deinstalliert und Sie können jetzt versuchen, die neue Version ohne Probleme zu installieren. Hoffe das wird dir helfen

Überprüfen Sie meine Lösung unter dem folgenden Link.

Link 1

Hoffe es wird dir helfen.

Ragu Swaminathan
quelle
Wie zum Teufel konnten sie das so machen? Arbeiten übrigens danke.
Adam Varhegyi
2
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert.
SOFe
Mann, vielen Dank, dieser Fehler hat mich eine Woche gekostet, um herauszufinden
Diego Vinícius
Schön, hat dir geholfen !! @ DiegoVinícius
Ragu Swaminathan
66

Für aktuelle Updated Android Studio 2.3Benutzer ist diese Antwort für Sie, da Eclipse heutzutage kaum noch für die Android-Entwicklung verwendet wird, da Android Studio enorme Fortschritte erzielt.

Gehen Sie also folgendermaßen vor, um Ihre Signed apkDatei zu erstellen .

  1. Build> Generieren Signed apk.
  2. Erstellen Keystore path.
  3. Put Password, alias, key password.
  4. Build typeWählen Sie entsprechend aus (z. B. zur Freigabe im Playstore release).
  5. Signature VersionAktivieren Sie beide V1und V2Kontrollkästchen.
  6. Finsih.
  7. Gehen Sie zu dem Ort, an explorerdem Sie die apk zum Speichern ausgewählt haben, und Sie sehen Ihren .apkDateinamen als app-release.apkVerwendung.
Crime_Master_GoGo
quelle
14
Die Auswahl der Signatur V1 hat es geschafft
Meanman
Du hast mir viel Zeit
gespart
Arbeite für mich. Zeit sparen . Vielen Dank
YeeKhin
5
Beides überprüfen V1& V2war die Lösung!
Alex Jolig
1
Durch Überprüfen von V1 wurde das Problem für mich behoben. Bisher wurde nur V2 überprüft.
BluJ IT
51

Durch Auswahl von Signature Version v1 und v2 wurde das Problem für mich gelöst. Probieren Sie es ausGeben Sie hier die Bildbeschreibung ein

Shubhamhackz
quelle
4
Das war genau mein Problem. Es bleibt die Frage, warum wir auch V1 (JAR-Signatur) markieren sollen. und wie erwartet Google, dass wir das wissen?
A. Alqadomi
Es ist nicht zwingend erforderlich. Sie sollten BEIDE dieser Kontrollkästchen aktivieren, wenn dies möglich ist. Wenn der neue V2-Signaturmechanismus jedoch Probleme verursacht, können Sie beide überprüfen, wenn Probleme auftreten.
Shubhamhackz
43

Das gleiche passierte mir, solange ich meine apk aus Build> Build APK generierte. Ich konnte die apk so oft wie möglich ohne Probleme installieren und deinstallieren. Wenn ich jedoch die APK Build> Generate Signed APK generierte und die apk an das Telefon weitergab und versuchte, sie zu installieren, erlaubte sie mir nur eine Gelegenheit, die gleiche, die die folgende Nachricht herauskam:

Geben Sie hier die Bildbeschreibung ein

Bis dahin war alles in Ordnung, wenn ich "IN JEDER WEISE INSTALLIEREN" auswählte. Was geschah jedoch, wenn ich die App deinstallierte und neu installieren wollte (ein mögliches Szenario), geschah Folgendes:

Geben Sie hier die Bildbeschreibung ein

Daher habe ich das Problem durch Deaktivieren von Play Protect gelöst, was ich erreicht habe (innerhalb von Google Play)> Menü> Play Protect> Nach Sicherheitsbedrohungen suchen (Deaktivieren).

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Gerrard
quelle
Diese Lösung funktioniert bei mir. Eine weitere Änderung von Google +1
Ready Android
Du hast mein Leben gerettet!
Akcoban
Könnten Sie uns bitte sagen, warum dies passiert? Was mache ich falsch, was dazu führt, dass dies behoben wird?
sparkhead95
16

"App nicht installiert" wird angezeigt, wenn eine App mit demselben Paket bereits auf demselben Gerät installiert ist. Löschen Sie einfach Ihre erste Anwendung, die Sie zu Testzwecken verwendet haben, bevor Sie sie an signierte apk senden. Das wird funktionieren. Prost!

Tara
quelle
8
Ja, ich weiß, aber es ist vorher nicht installiert.
Adam Varhegyi
6
Wie kann ich apk mit einer höheren Version installieren, ohne die aktuelle App zu löschen?
user7856586
12

Wählen Sie sowohl Signature Version v1 als auch v2 aus, um das Problem zu beheben

Geben Sie hier die Bildbeschreibung ein

v1 Schema

Eine JAR-Datei kann mit dem Befehlszeilen-Jarsigner-Tool oder direkt über die API java.security signiert werden. Jeder Dateieintrag, einschließlich nicht signaturbezogener Dateien im META-INF-Verzeichnis, wird signiert, wenn die JAR-Datei vom Jarsigner-Tool signiert wird. Für jeden in der signierten JAR-Datei signierten Dateieintrag wird ein einzelner Manifesteintrag erstellt, sofern dieser noch nicht im Manifest vorhanden ist

V2-Schema

v1-Signaturen schützen einige Teile der APK nicht, z. B. ZIP-Metadaten. Der APK-Prüfer muss viele nicht vertrauenswürdige (noch nicht verifizierte) Datenstrukturen verarbeiten und dann Daten verwerfen, die nicht von den Signaturen abgedeckt werden. Dies bietet eine beträchtliche Angriffsfläche. Darüber hinaus muss der APK-Prüfer alle komprimierten Einträge dekomprimieren, was mehr Zeit und Speicher kostet. Um diese Probleme zu beheben, führte Android 7.0 das APK Signature Scheme v2 ein

Standardmäßig signieren Android Studio 2.2 und das Android Plugin für Gradle 2.2 Ihre App sowohl mit dem APK Signature Scheme v2 als auch mit dem traditionellen Signaturschema, das die JAR-Signatur verwendet.

Es wird empfohlen, APK Signature Scheme v2 zu verwenden, dies ist jedoch nicht obligatorisch. Bitte beachten Sie die Details

Lineesh K Mohan
quelle
10

In Android Studio 3.0 und höher

Wie hier beschrieben

Hinweis: Mit der Schaltfläche Ausführen wird eine APK mit testOnly = "true" erstellt. Dies bedeutet, dass die APK nur über adb (das von Android Studio verwendet wird) installiert werden kann. Wenn Sie eine debuggbare APK möchten, die Benutzer ohne ADB installieren können, wählen Sie Ihre Debug-Variante aus und klicken Sie auf Build Bundle (s) / APK (s)> Build APK (s).

Fügen Sie android:testOnly="false"innerhalb des Anwendungs-Tags in AndroidManifest.xml hinzu

Referenz: https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html

Ketan Ramani
quelle
7

Oben shubham soni Antwort funktioniert für mich, eigentlich passiert es mit Android-Version> = 5.0.In oben können Sie installieren, verwenden Sie dies einfach beim Erstellen Ihrer apk Geben Sie hier die Bildbeschreibung ein...

Amit Raj
quelle
1
Warum diese doppelte Antwort?
Sziraqui
@sziraqui: Subhankar soni hat nicht erwähnt, warum "Signiertes apk kann nicht manuell auf dem Gerät installiert werden, Fehler" App nicht installiert "angezeigt wird. Ich hatte das gleiche Problem mit der Os-Version wie oben erwähnt. Zum besseren Verständnis habe ich erwähnt, dass .Is Ist in meiner Antwort etwas nicht in Ordnung? Für Android-Version <= 5.0 können Sie dieselbe apk installieren, ohne die Kontrollkästchen für beide Signaturversionen zu markieren.
Amit raj
Ihre Antwort fügt der ursprünglichen Antwort nur einen weiteren Punkt hinzu, sodass es sich um einen Kommentar handeln sollte. Wenn Sie dies als Antwort veröffentlichen, sollten Sie eine Art Zitat hinzufügen, das Ihre Behauptung von Android 5.0 unterstützt. Was ist, wenn Ihr Problem tatsächlich mit Android Ide und nicht mit Android-Version zusammenhängt?
Sziraqui
Vielen Dank, das Bild in der Antwort brachte mich auf die Idee, sowohl aktivierte V1- als auch V2-Signaturen zu testen. Zuvor war ich nur mit V1
Jasxir
6

Hier habe ich dieses Problem behoben

Der Grund für dieses Problem ist, dass das Telefon bereits eine Anwendung mit demselben Paketnamen enthält, die Sie jedoch nicht im Telefonmenü finden können (Sie haben die Deinstallation bereits durchgeführt, sie befindet sich jedoch noch in Ihrem Telefon).

Um die Anwendung zu sehen, gehen Sie zu EINSTELLUNGEN -> APPS des Telefons . Dort können Sie die Anwendung sehen, aber darin kann die Schaltfläche UNINSTALL deaktiviert sein. Klicken Sie auf die Schaltfläche Menüüberlauf , um Deinstallieren für alle Benutzer anzuzeigen .

Nach der Deinstallation für alle Benutzer habe ich meine signierte apk erfolgreich installiert. Sie können auch adb verwenden, um die App vom Telefon zu deinstallieren.

adb uninstall package name

Zusätzlich dazu, wenn Ihr Mobil unterstützt mehrere Benutzer dann prüfen , ob entsprechende App für andere Benutzer nicht installiert ist. Wenn es für andere installiert ist, deinstallieren Sie zuerst die vorherige App und versuchen Sie es erneut

Alex Chengalan
quelle
4

Es ist eine ziemlich alte Frage, aber meine Lösung bestand darin, den versionCode (erhöhen) in build.gradle zu ändern

Mateusz-Punkt
quelle
4

Gehe zu Build.Gradle (Modul: App)

Verwenden Sie dies - minifyEnabled false

Abhinav Pandey
quelle
4

minifyEnabled false

ist das einzige, das nach 3 Tagen Recherche in allen Foren für mich funktioniert hat!

Toto1
quelle
1
Dies scheint nur eine Wiederholung dieser bestehenden Antwort zu sein .
Pang
Mit zusätzlichem Kommentar.
RobinCTS
Mit anderen Worten, dies sollte als Kommentar zu dieser Antwort veröffentlicht worden sein , nicht als Antwort an und für sich.
RobinCTS
3

Dies kann daran liegen, dass Sie die APK-Datei vom externen SD-Kartenspeicher ausführen. Kopieren Sie einfach die APK-Datei in das interne Speicherproblem. Das Problem wird behoben

Vu Thai Duy
quelle
1

Dies kann aufgrund Ihrer Wahl der Signaturversion geschehen. Bei einigen Telefonen treten Installationsfehler auf, wenn die Signaturversion als V2 ausgewählt wurde. Wenn dies passiert, versuchen Sie V1 auszuwählen, es wird sicherlich funktionieren.

Prashant Paliwal
quelle
1

Ich hatte heute das gleiche Problem. Ich erinnerte mich, dass ich meine Apk mit der "neuen" Google Play-Signatur signiert habe:


Geben Sie hier die Bildbeschreibung ein


Stellen Sie sicher, dass Sie Ihre Anwendung mit Google Play signiert haben.

Wenn du. .. getan hast:

  • Installiere ein Update, indem du deine apk auf Google Console hochlädst (wie du es normalerweise beim Aktualisieren deiner Anwendung tun würdest):

Geben Sie hier die Bildbeschreibung ein


  • Öffnen Sie nach dem erfolgreichen Hochladen das Artifact libraryim Menü.
  • Sie sehen die apk, die Sie gerade hochgeladen haben.
  • Drücken Sie die Download-Taste und wählen Sie Download derived APK.

Sie können nun die apk installieren.

HB.
quelle
0

wenn Ihre Android Studio-Version größer als 3.0 ist

Es sieht so aus, als könnten wir die apk nicht direkt verwenden, nachdem sie auf dem Gerät aus dem Ordner build -> output-> apk ausgeführt wurde.

Nach dem Upgrade auf Android Studio 3.0 müssen Sie zu Build -> Build Apk (s) gehen und die Apk von Build -> Output -> Apk -> Debug kopieren

Geben Sie hier die Bildbeschreibung ein

Keshav Gera
quelle
Titel dieser Frage - "Cannot install signed apk". Sie beziehen sich auf debug apk.
KRK
0

Datei> Projektstruktur> Varianten erstellen> Release auswählen> Stellen Sie sicher, dass 'Signing Config' nicht leer ist> wenn es aus dem Drop-Fenster ausgewählt ist $signingConfigs.release

Ich habe dies mit Android Studio 3.1.4 gemacht und konnte eine Release-Apk erstellen, nachdem ich alle oben genannten Schritte zum Erstellen der Release-Apk und des Release-Schlüssels ausgeführt und die Informationen zum App-Gradle hinzugefügt habe. Prost!

Treewallie
quelle
$signingConfigs.releaseist nicht verfügbar, nur $signingConfigs.debugverfügbar.
KRK
Gehen Sie dann zu Erstellen> APK generieren> APK auswählen und befolgen Sie die Anweisungen.
Treewallie
0

Ich hatte das gleiche Problem in meiner Android-Anwendung. Ich habe gerade eine Bibliothek aktualisiert und dann sign APK erstellt. Jetzt ist es Arbeit.

Shailesh
quelle
0

Sie müssen die Google Play-Version nicht deinstallieren, wenn die App-Signatur von Google Play für Ihre App aktiviert ist . Gehen Sie folgendermaßen vor:
1. Erstellen Sie mit Ihrem Release-Schlüssel eine signierte Version Ihrer App.
2. Wechseln Sie zur Google Play Developer Console
3. Erstellen Sie eine Closed-Track-Version (Alpha- oder Beta-Version) mit der neuen signierten Version Ihrer App
4. Sie können jetzt die von App Signing von Google Play signierte Apk herunterladen und die abgeleitete APK auswählenGeben Sie hier die Bildbeschreibung ein

  1. Installieren Sie die heruntergeladene abgeleitete APK

Der Grund dafür ist, dass App Signing von Google Play Freigabe-Apps mit unterschiedlichen Schlüsseln signiert, wenn Sie eine App aus dem Play Store installiert haben und die neue Release-Versions-App (generiert aus Android Studio) auf Ihrem Telefon testen möchten: "App nicht installiert". Dies geschieht, da die alte und die neue Version mit zwei verschiedenen Schlüsseln signiert wurden: einem mit App Signing von Google Play und einem mit Ihrem Schlüssel.

Abduaziz Kayumov
quelle
0

Das Entfernen des android:testOnly="true"Attributs aus der AndroidManifest.xml hat funktioniert. Verknüpfung

Sachin K.
quelle
0

Deinstallieren Sie bitte die Debug-App auf dem Gerät oder erhöhen Sie einfach den Versionscode, um diese Probleme zu beheben

Jaaveeth
quelle
0

In meinem Fall habe ich versucht, die Installation eines signierten APK zu testen, und die aktuell auf meinem Gerät installierte Version war nicht signiert (Erstellen einer Debug-Version direkt aus Android Studio).

Polizisten
quelle
0

Es ist offensichtlich, aber es war immer noch schwer für mich herauszufinden,

Bitte überprüfen Sie, ob Ihr Mobilgerät über genügend Speicherplatz verfügt, um die apk zu installieren. und es ist nicht voll.

Makarand
quelle