Android Studio: Schlüssel kann nicht wiederhergestellt werden

93

Ich habe eine Weile nach StackOverflow gesucht, wollte aber nur sicherstellen, dass ...

Ich habe vor einiger Zeit meinen Laptop abgewischt und alle meine Dateien gesichert. Ich habe meine android.jks-Datei gesichert und sie ist wieder vorhanden. Wenn ich versuche, eine signierte APK zu generieren, erhalte ich den gleichen gefürchteten Fehler, den jeder erhält:

Error:Execution failed for task ':app:packageRelease'.
> Failed to read key conjugationappkey from store     
"/Users/wasimsandhu/android.jks": Cannot recover key

Ich habe meine android.jks, das Schlüsselkennwort, das Schlüsselspeicherkennwort. Alles ist richtig. Was vermisse ich? Ich habe alle meine Dateien gesichert. Wenn ich also eine bestimmte Datei benötige, kann ich sie finden, habe aber keine Ahnung, was ich tun soll ...

Wenn ich keinen Sinn mache, bitte mich um Klarstellung. Vielen Dank!

wasimsandhu
quelle
2
Wenn Sie in Ihrem Keystore-Passwort das Zeichen & oder @ verwendet haben, scrollen Sie nicht zum Antwortbereich , sondern springen Sie zu diesem Link , um die Antwort von Sharma zu erhalten.
Meyasir

Antworten:

115

Ich bin nicht überrascht, dass dies keine Anziehungskraft erlangt hat, aber hier ist, was ich für jeden getan habe, der auf diesen Beitrag stößt.

Wie gesagt, alle meine Dateien wurden gesichert. Ich habe die Datei android.jks aus einem älteren Backup wiederhergestellt. Dann öffnete ich ein Terminalfenster und tippte Folgendes ein:

keytool -storepasswd -new [insert new keystore password] -keystore [insert keystore file name]

keytool -keypasswd -alias [insert alias] -new [insert new key password] -keystore [insert keystore file name]

Der Schlüsselspeicher und die Schlüsselkennwörter müssen identisch sein! Dies hat mein Problem behoben und ich hoffe, es hilft Ihnen auch.

wasimsandhu
quelle
5
Danke dir! Wie haben Sie herausgefunden, dass die Passwörter identisch sein müssen? Ich habe heute angefangen, diesen Fehler zu bekommen. Bisher hat alles mit zwei verschiedenen Passwörtern gut funktioniert.
Alen Siljak
6
Meine Passwörter sind gleich und ich habe immer noch diesen Fehler. Ich konnte die vorherige Version mit demselben Schlüssel signieren. Was soll ich jetzt tun?
Tushar Gogna
1
Ich habe das gleiche Problem konfrontiert. Vorgestern habe ich erfolgreich signierte APK generiert und heute wieder das gleiche Problem. Kann jemand eine dauerhafte Lösung haben!
Neo
4
Es gibt diesen Fehler noch jetzt in meinem Fall: "keytool error: java.security.UnrecoverableKeyException: Schlüssel kann nicht wiederhergestellt werden"
0xAliHn
1
Auch für mich das gleiche Problem. Nach dem Ausführen der ersten Zeile werden Sie nach einem Kennwort gefragt. Ich gebe es, aber dann heißt es "Keytool-Fehler ... Keystore wurde manipuliert oder Passwort war falsch"
Ammar Bukhari
64

[Update: Dies funktioniert nicht mehr in Android Studio 3.0 und höher]

Ich sah mich dem ähnlichen Problem gegenüber und keine der Lösungen funktionierte, nachdem ich 3 Stunden im Internet verschwendet hatte. Ich beschloss, tief zu graben.

Hier ist, wie ich es gelöst habe: Der Fehler "Schlüssel kann nicht wiederhergestellt werden" war für mich, weil mein "Keystore-Passwort" korrekt war, aber das "Schlüsselpasswort" (des Schlüsselalias) falsch war . Ich war mir ziemlich sicher, dass beide Passwörter gleich waren, aber zu meiner Bestürzung waren sie es nicht und ich wusste nicht, wie das zweite Passwort lautete. Da ich bereits eine APK signiert hatte, bevor ich die Protokolldatei ausgecheckt habe, die gefunden werden kann:

  • C: \ Benutzer \ Ihr_Benutzername \ .AndroidStudio2.1 \ system \ log \

Öffne die Protokolldateien ab dem Datum, an dem du die apk unterschrieben hast und suche nach folgenden Einträgen:

 INFO - .project.GradleExecutionHelper - Passing command-line args to Gradle Tooling API: [--configure-on-demand, -Pandroid.injected.invoked.from.ide=true, 
-Pandroid.injected.signing.store.file=E:\HobbyProjects\XYZProject\gpsjs.jks, 
-Pandroid.injected.signing.store.password=***KeyStorePassword***, 
-Pandroid.injected.signing.key.alias=***alias_name***, 
-Pandroid.injected.signing.key.password=***Key password***, 

Und Sie finden die Passwörter im Klartext. Dies funktioniert sogar, wenn Sie Passwörter vergessen.

Build3r
quelle
3
JA! ENDLICH! Mein Passwort befand sich in der "Idee" -Datei in dem von Ihnen genannten Ordner. Ich habe sogar versucht, einen Passwort-Cracker zu verwenden, aber er gab mir den Alias-Pass und ich dachte, es war der Keystore, aber das war es nicht.
George
Vielen Dank! Ich habe das verwendet, das master passwordich beim Signieren der apk eingegeben habe, aber ich musste das nur wiederholen key password.
JCarlosR
Ich hatte noch nie eine Protokolldatei gesehen. Das Überprüfen von Protokolldateien gibt mir einen sehr starken Hinweis. Danke dir.
Hata
6
Funktioniert das für AndroidStudio3.0? Ich sehe meine Passwörter als *********.
TheLearner
2
@ Androidcoder Android Studio Team hat diese Lücke in den letzten Versionen behoben.
Build3r
23

Wenn es jemandem helfen kann - das Problem in meinem Fall war, dass das "Schlüsselspeicherkennwort" und das "Schlüsselkennwort" falsch waren.

MorZa
quelle
12

Ich habe alle gegebenen Vorschläge in Antworten und Kommentaren ausprobiert :(

Mein Schlüsselkennwort und mein Schlüsselspeicherkennwort sind genau gleich. Verwenden von Android Studio 3.4

Was für mich funktioniert hat, war , Android Studio zu beenden, erneut zu starten, das Projekt zu bereinigen und neu zu erstellen und dann signierte apk zu generieren. Alle Konfigurationen sind genau gleich, aber diesmal hat es funktioniert

Zeeshan Tufail
quelle
3
Ich habe das Projekt gereinigt und neu aufgebaut und dann hat es gut funktioniert. +1 bis
Sanjeeb
1
Das hat bei mir funktioniert. Keine coole "Funktion" für eine IDE, um die Verwaltung solcher wichtigen Informationen durcheinander zu bringen.
Marc-André Weibezahn
Bestätigt in Android Studio 3.6.2 PS Ich liebe dich
bjm904
9

[Android Studio 3.3] Beim Generieren einer signierten APK wurde der Fehler "Schlüssel kann nicht wiederhergestellt werden" angezeigt. Ich konnte in einem älteren idea.log die Richtigkeit meines Passworts überprüfen: Key Store und Key Passwörter waren identisch und korrekt.

Aktualisieren des Schlüsselkennworts im Terminal:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

Es scheint nicht mehr möglich zu sein, identische Passwörter für Schlüsselspeicher und Schlüssel zu haben. Das Keytool gab mir einen Fehler, als ich es versuchte. Nach dem Festlegen eines anderen Kennworts für den Schlüssel hat Android Studio eine signierte APK generiert.

Möglicherweise mussten in früheren Android Studio-Versionen die Passwörter identisch sein - jetzt ist es möglicherweise umgekehrt.

LiebrandApps
quelle
Ich habe meine App vor 2 Wochen aktualisiert und heute wird es nicht mehr funktionieren. Ich benutze dies, um die Passwörter so zu ändern, dass sie gleich sind, und aktualisiere das Android Studio. Jetzt habe ich eine neue Version veröffentlicht.
Alejandro Cumpa
Zwischen der Antwort von @ Build3r und dieser konnte ich beide Passwörter auf unterschiedliche, akzeptable Werte setzen und meine App erfolgreich signieren. Danke Leute!
Peter Gluck
3

Es kann jemandem helfen.

Einige Tage zuvor habe ich mein Android-Projekt auf Gitlab gesichert und dann Windows 10 installiert. Danach habe ich es geklont. Ich kannte den Schlüsselalias und beide Passwörter genau.

Dann habe ich beim Generieren der signierten apk diese Anmeldeinformationen eingegeben, bin aber fehlgeschlagen.

Ich hatte die jks-Datei in den App-Ordner gelegt. Ich habe es von dort entfernt und einen separaten Ordner im Stammordner des Android-Projekts erstellt und dort die JKS-Datei abgelegt .

Dann habe ich versucht , das Projekt zu bereinigen, neu zu erstellen und dann Android Studio neu zu starten. Schließlich baute es die signierte apk: D.

Makarand
quelle
2

Dieses Problem tritt nur auf, wenn Ihr Schlüsselkennwort oder Keystore-Kennwort nicht übereinstimmt.

Arjun G.
quelle
1

Ich habe gerade den Abschnitt signingConfigs aus meiner App-Gradle-Datei entfernt. Dann das Projekt neu aufgebaut und es hat wieder funktioniert.

Martin B.
quelle
0

Ich hatte das Glück, in Android Studio die Registerkarte Projektstruktur / Signieren zu überprüfen, und fand das Schlüsselkennwort und das Speicherkennwort im Klartext. Ich dachte, sie wären gleich, aber sie waren es nicht.

saswanb
quelle
0

Wenn Eclipse ausgeführt wird, versuchen Sie, es herunterzufahren und erneut eine signierte Apk zu generieren.

In meinem Fall habe ich überprüft, ob alle Passwörter korrekt sind, und sogar einen neuen Schlüsselspeicher aus Android Studio generiert. Es hat immer noch nicht funktioniert, aber nachdem ich die laufende Eclipse heruntergefahren habe, hat alles funktioniert, mit dem alten Schlüsselspeicher, den ich verwendet habe, oder mit einem neu generierten.

RedSIght
quelle
0

Ich habe meine Signaturdatei bereits beim ersten Erstellen komprimiert. Als ich diesen Fehler bekam, habe ich ihn erneut verwendet. Sie können es verwenden, wenn Sie ein Backup haben. Ich denke, wir haben Dinge kaputt gemacht, bevor sie es bemerken.

Mahmut K.
quelle
0

Ich hatte das gleiche Problem. In meinem Fall wurde dieses Problem durch After-Sync-Projekt mit Gradle-Dateien behoben. Dies könnte jemandem helfen.

Vikas Rai
quelle
0

Meine Passwörter waren gleich und haben immer noch diesen Fehler erhalten. Das Bereinigen, Neuerstellen und Neustarten von Android Studio hat bei mir nicht funktioniert. Die einzige Lösung, die für mich funktioniert hat, war das Verschieben der Datei keystore.jks an einen neuen Speicherort. Hoffe das hilft.

Andrain
quelle
0

Ich habe die .imlDatei einfach aus meinem Projekt entfernt . Dann das Projekt umgebaut und es hat wieder funktioniert.

Muhammad Waleed
quelle