Android App nicht installiert. Ein vorhandenes Paket mit demselben Namen und einer widersprüchlichen Signatur ist bereits installiert

131

Wenn ich in meinem Emulator versuche, programmgesteuert ein Upgrade meiner apk durchzuführen. Ich bekomme:

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

Geben Sie hier die Bildbeschreibung ein

Ich bin noch in der Testphase dieses Upgrades, daher ist die Datei, die ich herunterlade, eine signierte Apk einer früheren Version, die meiner Meinung nach ohne Probleme funktionieren sollte.

Aus dem Vorschlag in: Ein vorhandenes Paket mit demselben Namen und einer konfilzierenden Signatur ist bereits installiert. Ich habe versucht, den Emulator sowohl im Debug-Modus als auch im normalen Modus auszuführen. Beides hat nicht funktioniert.

Irgendwelche Gedanken darüber, was mir fehlt?

James Oravec
quelle
1
Verwenden Sie die gleiche Signatur, um die apk vor der Installation zu signieren
Praveen Sharma
Dieses Problem entsteht aufgrund von Signatur oder nicht übereinstimmender Key-Store-Datei. Finden Sie den Link für die Lösung: readyandroid.wordpress.com/…
Ready Android

Antworten:

97

Das Problem sind die Schlüssel, die zum Signieren der APKs verwendet wurden. Wenn Sie direkt von Ihrer IDE aus arbeiten und Ihren Emulator öffnen, wird die im Emulator installierte APK standardmäßig mit Ihrem Debug-Schlüssel signiert (normalerweise in ~ / .android installiert) /debug.keystore). Wenn also die vorherige APK mit einem anderen als dem aktuell verwendeten Schlüssel signiert wurde, wird immer der Signaturkonflikt angezeigt. Um dies zu beheben, stellen Sie sicher, dass Sie zum Signieren denselben Schlüssel verwenden Beide APKs, auch wenn die vorherige APK mit einem Debug-Schlüssel von einem anderen SDK signiert wurde, sind die Schlüssel definitiv unterschiedlich.

Auch wenn Sie nicht genau wissen, welcher Schlüssel zuvor zum Signieren der apk verwendet wurde und Sie dennoch die neue Version Ihrer App installieren möchten, können Sie einfach die vorherige Anwendung deinstallieren und die neue neu installieren.

Hoffe das hilft...

Grüße!

Martin Cazares
quelle
Ich werde die Apk von einem Nicht-Entwickler signieren und einen manuellen Download / eine manuelle Installation im Emulator durchführen. Der Emulator sollte dann die andere nicht dev-signierte apk herunterladen und versuchen, das Upgrade durchzuführen. Wenn dies funktioniert, akzeptiere ich Ihre Antwort. Thx
James Oravec
@MartinCazares gibt es sowieso um den apk schlüssel zu bekommen? damit ich meine App-Daten nicht verliere?
Heisenberg
Nun, wenn Sie die App installiert haben, sollten Sie den Schlüssel haben, andernfalls wie würden Sie die apk unterschreiben? Wenn die vorherige Apk nicht von Ihnen erstellt wurde, müssen Sie den Entwickler dieser Apk nach dem Schlüssel fragen. Ansonsten gibt es keine Möglichkeit, den Schlüssel zu erhalten, mit dem eine Apk signiert wurde ...
Martin Cazares
Vielen Dank dafür! Du hast meinen Tag und mein Team gerettet! Haha
Perozzo
1
Ich habe eine Anwendung in LIVE im Playstore, jetzt habe ich diese App auf dem Testgerät installiert und jetzt aktualisiere ich zum Aktualisieren einer neueren Version der App "versionno" und "versionname" in der Datei app build.gradle. Jetzt habe ich einen Release-Build mit signiertem Schlüssel erstellt, während ich versuche, diesen Build durch einen Fehler zu installieren ::: Ein vorhandenes Paket mit demselben Namen und einer widersprüchlichen Signatur ist bereits installiert. Und nicht auch installiert zu werden. Freundlich helfen .
Tarit Ray
195

Ich hatte die gleiche Fehlermeldung, aber diese Antworten haben nicht geholfen. Auf einem 4.3 Nexus 7 habe ich einen Benutzer verwendet, der NICHT der Besitzer war. Ich hatte die ältere Version deinstalliert, bekam aber immer wieder die gleiche Meldung.

Lösung: Ich musste mich als Eigentümer anmelden und zu Einstellungen -> Apps gehen und dann zur Registerkarte Alle wischen. Scrollen Sie bis zum Ende der Liste, in der die alten Versionen mit der Markierung "Nicht installiert" aufgeführt sind. Wählen Sie es aus und klicken Sie auf die Schaltfläche "Einstellungen" in der oberen rechten Ecke und schließlich auf "Für alle Benutzer deinstallieren".

Αλέκος
quelle
2
Ich musste von "Heruntergeladen" in die Liste "Alle" wechseln, um sie in der Apps-Liste zu finden.
ShawnFeatherly
1
Stellen Sie, wie bereits erwähnt, sicher, dass Sie ganz nach unten scrollen. Die "nicht installierten" Apps werden nicht in alphabetischer Reihenfolge aufgelistet.
jmcmann
3
DANKE!!! Dies war auch mein Problem, nachdem ich meinen Test Nexus 7 an einen Freund ausgeliehen hatte. Ich dachte, meine Schlüssel wären beschädigt ... Ich habe diesen Benutzer gelöscht, um zukünftige Verwirrung zu vermeiden.
mm2001
1
Hat mir Zeit gespart. Ein großes Lob.
Piyush Patel
2
Vielen Dank. Ich musste mich bei allen Benutzern anmelden und 1 von 1 deinstallieren.
Ricardo
8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

Geben Sie hier die Bildbeschreibung ein

Gehen Sie zu Einstellungen> Apps, suchen Sie die App-Informationen und öffnen Sie sie. Öffnen Sie dann das Überlaufmenü (3 vertikale Punkte) und wählen Sie für alle Benutzer deinstallieren.

Keshav Gera
quelle
Das hat mir geholfen - danke. Aus irgendeinem Grund wurden dort zwei Versionen meiner App angezeigt, selbst nachdem ich sie über meinen Startbildschirm deinstalliert hatte.
Joro Tenev
Vielen Dank Joro Tenev Voting Me
Keshav Gera
5

Es gibt einen Unterschied zwischen signierten und nicht signierten APK-Dateien. Höchstwahrscheinlich hatten Sie dort zuvor einen unsignierten. Sie müssen nur die nicht signierte Version löschen, bevor Sie die signierte Version installieren. Wie dies erreicht werden kann, hängt von der genauen Version ab. Im Allgemeinen gehen Sie im Emulator zu Einstellungen-> Anwendung, klicken Sie lange auf Ihre App und löschen / entfernen / deinstallieren Sie sie.

PearsonArtPhoto
quelle
Ich werde eine nicht signierte apk erstellen und die nicht signierte apk herunterladen und prüfen, ob dies das Problem löst. Wenn dies der Fall ist, kann ich die signierten apks mit Hardware testen. Ich werde die Antwort akzeptieren, wenn dies der Fall ist.
James Oravec
Ich versuche, das Upgrade von meinem Programm aus durchzuführen, daher funktioniert die manuelle Deinstallation / Installation nicht.
James Oravec
Als ich die nicht signierte App installiert habe, bekomme ich einfach app not installed. Ich habe die Emulatoreinstellungen überprüft und es wurde Allow installation of apps from unknown sourcesüberprüft. Dies scheint also nicht die Lösung zu sein.
James Oravec
Geben Sie eine Stimme für die Vorschläge. Ich denke, es hat uns geholfen, zur endgültigen Lösung zu gelangen. Vielen Dank!
James Oravec
5

Wenn Sie das Debug-Apk verwenden, ist der Schlüssel, mit dem es angemeldet wird, angemeldet

C:\Users\<user>\.android\debug.keystore

Wenn Sie denselben Schlüssel verwenden, sollte bei der Installation kein Konflikt auftreten.

Santiago
quelle
Vielen Dank, Santiago. Letzten Tag habe ich die Festplatte meines Computers von einem mechanischen Laufwerk auf ein Solid State-Laufwerk geändert. Daher muss ich mein Windows aktualisieren. Ich hatte das gleiche Problem und habe dann die Datei debug.keystore aus dem vorherigen Windows-Ordner in den neuen kopiert Windows-Ordner das Problem wird behoben :)
Arslan Sohail
Vielen Dank für die Antwort, da sie mein Problem tatsächlich gelöst hat. Ich programmiere mit einem Freund und wir hatten dieses Problem häufig. Jetzt, da wir den Debug-Schlüssel gemeinsam nutzen, ist alles in Ordnung.
Gustavo Magalhães
5

Wenn die oben genannten Lösungen bei Ihnen nicht funktioniert haben, müssen Sie möglicherweise Folgendes tun:

1) Installieren der App aus dem Appstore.
2) Aktualisieren mit sign APK mit dem gleichen Paketnamen aktualisierte Version.

Grundsätzlich gibt es also zwei Arten von APKs.

1) Sie haben im Playstore hochgeladen, der als Original-APK bekannt ist.
2) Download aus dem Playstore als abgeleitete APK bekannt.

In diesem Fall laden Sie im Grunde genommen abgeleitete apk herunter und aktualisieren sie mit der ursprünglichen APK.

Damit es gut funktioniert, haben Sie eine neu signierte, freigegebene APK im internen Testmodus im Google Play Store hochgeladen und die abgeleitete APK heruntergeladen, um das Aktualisierungsszenario zu überprüfen.

Geben Sie hier die Bildbeschreibung ein

Wahab Khan Jadon
quelle
2

Wenn Sie mehrere Benutzer bei Android verwenden, stellen Sie sicher, dass die App überall deinstalliert ist.

Martin Koubek
quelle
Sehr ähnlich zu der beliebten Antwort stackoverflow.com/a/20084044/4136325 oben, finden Sie nicht?
Thomas Weller
1
Ja, das ist der Trick - Deinstallation der App für alle Benutzer
Martin Koubek
1

Ich hatte ein Problem, bei dem sowohl Debug- als auch Release-Build nicht auf Geräten installiert werden konnten, die ich zum Debuggen verwendet habe. Die gleiche Meldung wird angezeigt, wenn Sie versuchen, die neue Version zu installieren. Die einzige Problemumgehung bestand darin, die aktuelle Version zu deinstallieren und die neue zu installieren.

Es sieht so aus, als ob Android Studio die installierte apk markiert, sodass bei der Installation mit den Paketmanagern zwischen der zum Debuggen installierten Version und den von Google Play oder anderen externen Quellen heruntergeladenen Versionen unterschieden werden kann (dies ist mir bei der Verwendung von Eclipse nie passiert).

FunkSoulBrother
quelle
1

Möglicherweise ist die Anwendung nicht erfolgreich deinstalliert. In diesem Fall können Sie diese Methode ausprobieren.

Holen Sie sich zuerst den Paketnamen der Anwendung, z. B. 'com.xxx.app'. Sie können den Root-Explorer verwenden und ihn aus der Manifest-Datei suchen (RE kann die Datei dekodieren). Dann können Sie dieses Skript verwenden, um es zu deinstallieren:

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove
zweimal Yuan
quelle
1

Gleicher Paketfehler:

  1. Erstellen Sie in Ihrer App ein neues Paket mit einem anderen Namen.
  2. Kopieren Sie alle Dateien in Ihrem alten Paket und fügen Sie sie in ein neues Paket ein.
  3. Code speichern.
  4. Altes Paket löschen und Projekt bereinigen und neu erstellen.
VIJAY RAVAL
quelle
1. Sehr 2. kurz 3. könnte 4. 5. Erklärung gebrauchen.
Yunnosch
1

Geben Sie hier die Bildbeschreibung einIch musste mich als Eigentümer anmelden und zu Einstellungen -> Apps gehen und dann zur Registerkarte Alle wischen. Scrollen Sie bis zum Ende der Liste, in der die alten Versionen mit der Markierung "Nicht installiert" aufgeführt sind. Wählen Sie es aus und klicken Sie auf die Schaltfläche "Einstellungen" in der oberen rechten Ecke und schließlich auf "Für alle Benutzer deinstallieren".

Ashish Kumar
quelle
Das hat bei mir funktioniert, aber ... jetzt, wenn ich von meiner Website herunterlade, wird die App nicht heruntergeladen (zumindest nicht in den Download-Ordner). Es wurden keine Fehler gemeldet. Passiert einfach nicht. Wenn ich mein Telefon an meinen Computer anschließe, kann ich die APK auf das Telefon kopieren und ohne gemeldete Fehler installieren.
Ron
0

Es kann einen anderen Grund geben, warum Ihre Anwendung nicht aktualisiert wird, wenn Sie die shareId in AndroidManifiest ändern / hinzufügen / entfernen.

"android: sharedUserId"

Bitte überprüfen Sie das auch.

Um dies zu verhindern, wird empfohlen, sharedUserId in Ihrer Anwendung zu verwenden, obwohl Sie dies derzeit oder jetzt benötigen.

Pawan Maheshwari
quelle
0

Ich habe alles versucht und es hat nicht funktioniert.

Ich habe festgestellt, dass trotz der Deinstallation der App eine neue Version der App immer noch den gleichen Fehler liefert.

Dies hat das Problem gelöst: Gehen Sie zu Einstellungen -> Allgemein -> Anwendungsmanager -> wählen Sie Ihre App aus -> klicken Sie auf die drei Punkte oben -> Deinstallieren Sie für alle Benutzer

Sobald Sie dies getan haben, wird es tatsächlich deinstalliert und ermöglicht nun die Installation Ihrer neuen Version.

Hoffe das hilft.

FelixFelicis
quelle