Ich habe versucht, eine apk neu zu installieren
$adb install -r new.apk
Und es zeigt den Fehler:
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
Eine Lösung besteht darin, die Datei new.apk zu deinstallieren und zu installieren, die einwandfrei funktioniert.
Aber ich frage mich, ob ich eine apk neu erstellen und ohne die Deinstallation neu installieren könnte. Z.B. Ändern Sie eine Konfiguration in der Datei AndroidManifest.xml oder signieren Sie die APK usw. nicht.
Es wäre sehr dankbar, wenn Sie mir die gesamte Bedeutung von "INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES" mitteilen könnten.
Antworten:
Dies bedeutet, dass die neue Kopie Ihrer Anwendung (auf Ihrem Entwicklungscomputer) mit einem anderen Signaturschlüssel signiert wurde als die alte Kopie Ihrer Anwendung (auf dem Gerät / Emulator installiert). Wenn es sich beispielsweise um ein Gerät handelt, haben Sie möglicherweise die alte Kopie von einem anderen Entwicklungscomputer (z. B. einem anderen Entwicklercomputer) installiert. Oder der alte ist mit Ihrem Produktionsschlüssel und der neue mit Ihrem Debug-Schlüssel signiert.
quelle
debug.keystore
) auf Ihren neuen Computer kopieren .debug.keystore
nicht in Ihrem Projektverzeichnis befindet. Es befindet sich normalerweise in Ihrem~/.android/
Verzeichnis. (siehe developer.android.com/guide/publishing/… )debug.keystore
. B. ). Wählen Sie einen als Master-Keystore aus, kopieren Sie ihn auf alle anderen Entwicklercomputer und ersetzen Sie den vorhandenen Keystore.debug.keystore
). Nachdem ich das Projekt neu erstellt hatte (mit Build-> Rebuild in Android Studio), waren die Schlüssel synchron.Ich bin darauf gestoßen, als ich auf einem neuen Xoom getestet habe. Ich hatte meine App zuvor vom Marktplatz installiert. Später, als ich versuchte, eine neue Version der App zu testen, stieß ich auf diesen Fehler.
Ich habe das Problem behoben, indem ich die über Marketplace installierte App entfernt habe (einfach gedrückt halten und in den Papierkorb ziehen). Danach konnte ich meine Entwicklungsversion ohne Probleme bereitstellen.
quelle
Dies passierte mir, als ein anderer Entwickler im Team unsere App auf dem Hardwaregerät erstellte, auf dem ich die Bereitstellung durchführen wollte. Das Deinstallieren der App von der Hardware hat mein Problem behoben.
quelle
adb uninstall <package name>
. Vielen Dank.Dies ist der Befehl zum Deinstallieren der App vom Gerät mit adb:
quelle
Ich habe diesen Fehler auch nach der Deinstallation der ursprünglichen APK erhalten, was mystifizierend war. Schließlich wurde mir klar, dass ich auf meinem Nexus 7 mehrere Benutzer zum Testen eingerichtet hatte und dass die App noch für einen der anderen Benutzer installiert war. Nachdem ich es für alle Benutzer deinstalliert hatte, verschwand der Fehler.
quelle
Ich habe den Paketnamen beim Codieren eines Updates geändert, damit ich es über Eclipse auf meinem Gerät debuggen kann, ohne die alte Version zu löschen, die installiert wurde. Ohne den Paketnamen zurückzusetzen, den ich bei der Neuinstallation verwendet habe, wurde der gleiche Fehler angezeigt. Bei Verwendung des gleichen Paketnamens war die Neuinstallation erfolgreich.
quelle
Löschen Sie einfach den alten Build vom Gerät und installieren Sie ihn erneut. Da device.keystore bereits im Gerät vorhanden ist, deinstallieren Sie einfach den Build und installieren Sie die APK neu.
Vielen Dank
quelle
Ich sah mich einem anderen Anwendungsfall gegenüber, bei dem ich den ähnlichen Fehler bekam. Als ich zuerst den Fehler bekam, geriet ich in Panik und entfernte
/data/data/{package.name}
mich. Danach versuchte ich es und mein Problem war immer noch vorhanden. Dann habe ich versucht zu deinstallieren, es ist fehlgeschlagen.Ich entfernte dann die in vorhandene apk-Datei
/system/app
(erforderlicher Root-Zugriff) und versuchte zu deinstallieren und es war erfolgreich.Danach habe ich versucht, die apk neu zu installieren, es hat funktioniert.
quelle
Für das, was es wert ist, bin ich auf dieses Problem gestoßen, nachdem ich meinem Cordova-Projekt ein neues Plugin hinzugefügt habe. Ich hatte Cordova Builds und Installationen direkt auf dem Gerät über USB.
Ich habe es durch Deinstallation der App vom Gerät behoben und bei der nächsten Bereitstellung gab es keine Probleme.
quelle
Wenn im Ausgabefenster eine fehlgeschlagene Bereitstellung auf einem Andorid-Gerät oder Emulator mit dem Fehler "Fehler [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]" auftritt, löschen Sie einfach die vorhandene App auf dem Gerät oder Emulator und stellen Sie sie erneut bereit. Debug-Builds verwenden ein Debug-Zertifikat, während Release-Builds Ihr konfiguriertes Zertifikat verwenden. Dieser Fehler weist Sie lediglich darauf hin, dass sich das Zertifikat der auf dem Gerät installierten App von dem unterscheidet, das Sie installieren möchten. In Szenarien ohne Entwicklung (App Store) kann dies ein Hinweis auf eine beschädigte oder anderweitig geänderte App sein, die nicht sicher auf dem Gerät installiert werden kann.
quelle
Nichts von oben hat bei mir funktioniert. Das Problem für mich war, dass ich in meinem Java Build Path für android-support-v7-appcompat eine falsche Quelle hatte. Wenn Sie zu Projekt> Erstellungspfad> Erstellungspfad konfigurieren> gehen. Stellen Sie auf der Registerkarte Quelle sicher, dass Sie android-support-v7-appcompat / gen, android-support-v7-appcompat / libs und android-support-v7-appcompat / src und sonst nichts haben. Klicken Sie auf OK und es sollte funktionieren.
quelle
Ich hatte heute den gleichen Fehler, aber das Problem war nicht genau das gleiche. Ich verwende ADB mit Android, das in VirtualBox installiert ist . Ich habe versucht, verschiedene Versionen meiner App zu installieren (signiert / nicht signiert, Debug- / Release-Modus) und habe alternativ zwei Fehler erhalten:
INSTALL_FAILED_UID_CHANGED
undINSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
.Beim Betrachten habe
/data/data/{package.name}
ich nun eine Reihe von Dateien gefunden, die nach der Deinstallation der App noch vorhanden waren. Ichrm -rf
habe es ohne Erfolg versucht : Ich habe E / A-Fehler.Die Lösung dafür war:
vdfuse
(Lesen / Schreiben)Partition1
Bilddatei mite2fsck
quelle
Ich hatte das gleiche Problem, bis mir klar wurde, dass der Simulator lief und adb versuchte, darauf zu installieren
quelle
Da die Überprüfung auf dem Paketnamen basiert, können Sie den Paketnamen in Ihrer config.xml- oder Manifestdatei gegen einen anderen gewünschten Namen ändern.
Vergessen Sie beim Veröffentlichen Ihrer App nicht, den Namen zurück zu ändern!
quelle
Ich hatte dieses Problem beim Versuch, eine Gradle-Aufgabe
connectedDebugAndoidTest
(oderconnectedAndroidTest
) für Genymotion auszuführen . Das Ausführen auf einem normalen Emulator löste das Problem.quelle
Ich denke, Ihre App wurde von einem anderen Konto installiert. (Funktion für mehrere Konten) Sie können die App unter Einstellungen> Apps> "App-Name"> Deinstallieren deinstallieren
quelle