Android Studio: impossible de récupérer la clé

94

J'ai cherché StackOverflow pendant un moment, mais je voulais juste m'assurer ...

J'ai nettoyé mon ordinateur portable il y a quelque temps et sauvegardé tous mes fichiers. J'ai mon fichier android.jks sauvegardé et il est de nouveau en place. Lorsque j'essaie de générer un APK signé, cela me donne la même erreur redoutée que tout le monde obtient:

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

J'ai mon android.jks, le mot de passe de la clé, le mot de passe du magasin de clés. Tout est correct. Qu'est-ce que je rate? J'ai sauvegardé tous mes fichiers, donc s'il y a un fichier spécifique dont j'ai besoin, je pourrais le trouver, mais je ne sais pas quoi faire ...

Si je n'ai aucun sens, veuillez me demander de clarifier. Merci!

Wasimsandhu
la source
2
Si vous avez utilisé le caractère & ou @ dans votre mot de passe de keystore, ne faites pas défiler jusqu'à la section de réponse, sautez sur ce lien , pour la réponse de sharma.
meyasir

Réponses:

115

Je ne suis pas surpris que cela n'ait pas gagné de terrain, mais voici ce que j'ai fait pour tous ceux qui tombent sur ce post.

Comme je l'ai dit, tous mes fichiers ont été sauvegardés. J'ai restauré le fichier android.jks à partir d'une sauvegarde plus ancienne. Ensuite, j'ai ouvert une fenêtre Terminal et j'ai tapé ce qui suit:

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]

Le magasin de clés et les mots de passe clés doivent être identiques! Cela a résolu mon problème et j'espère que cela vous aidera aussi.

Wasimsandhu
la source
5
Je vous remercie! Comment avez-vous découvert que les mots de passe devaient être les mêmes? J'ai commencé à avoir cette erreur aujourd'hui. Jusqu'à présent, tout fonctionnait bien avec deux mots de passe différents.
Alen Siljak du
6
Mes mots de passe sont les mêmes et j'ai toujours cette erreur. J'ai pu signer la version précédente avec la même clé. Maintenant que dois-je faire?
Tushar Gogna
1
J'ai été confronté au même problème. Avant-hier, j'ai généré avec succès l'APK signé et aujourd'hui encore le même problème. Quelqu'un peut-il avoir une solution permanente!
Neo
4
Son donnant cette erreur encore maintenant dans mon cas: "erreur keytool: java.security.UnrecoverableKeyException: Impossible de récupérer la clé"
0xAliHn
2
Pour moi aussi, le même problème. après avoir exécuté la première ligne, il demande un mot de passe. Je le donne, mais il dit "erreur keytool ... le magasin de clés a été falsifié ou le mot de passe était incorrect"
Ammar Bukhari
64

[Mise à jour: cela ne fonctionne plus dans Android Studio 3.0 et supérieur]

J'ai fait face au problème similaire et aucune des solutions n'a fonctionné après avoir perdu 3 heures sur Internet, j'ai décidé de creuser profondément.

Voici comment je l'ai résolu: L'erreur «Impossible de récupérer la clé» pour moi était parce que mon «mot de passe du magasin de clés» était correct mais le «mot de passe de clé» (de l'alias de clé) était incorrect . J'étais à peu près sûr que les deux mots de passe étaient identiques, mais à ma grande consternation, ils ne l'étaient pas et je ne savais pas quel était le deuxième mot de passe. Comme j'avais déjà signé un APK avant de récupérer le fichier journal qui peut être trouvé:

  • C: \ Users \ votre_nom_utilisateur \ .AndroidStudio2.1 \ system \ log \

Ouvrez les fichiers journaux à partir de la date à laquelle vous avez signé l'apk et recherchez les entrées suivantes:

 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***, 

Et vous trouverez les mots de passe en texte brut. Cela fonctionnera même si vous oubliez les mots de passe.

Build3r
la source
3
OUI! ENFIN! Mon mot de passe était dans le fichier "idée" dans le dossier que vous avez mentionné. J'ai même essayé d'utiliser un cracker de mot de passe, mais cela m'a donné le passe Alias ​​et je pensais que c'était le keystore, mais ce n'était pas le cas.
George le
Merci! J'utilisais le master passwordque j'avais entré lors de la signature de l'apk, mais j'avais juste besoin de répéter le key password.
JCarlosR
Je n'avais jamais vu de fichier journal. Vérifier les fichiers journaux me fournit un indice très fort. Je vous remercie.
hata
7
Cela fonctionne-t-il pour AndroidStudio3.0? Je vois mes mots de passe comme *********.
TheLearner
2
L'équipe du studio @Androidcoder Android a corrigé cette faille dans les versions récentes.
Build3r
24

Si cela peut aider n'importe qui - le problème dans mon cas était que le «mot de passe du magasin de clés» et le «mot de passe de la clé» étaient incorrects.

MorZa
la source
12

J'ai essayé toutes les suggestions données dans les réponses et les commentaires :(

Mon mot de passe clé et mon mot de passe keystore sont exactement les mêmes. Utilisation d'Android Studio 3.4

Ce qui a fonctionné pour moi, c'est de forcer la fermeture d'Android Studio, de recommencer, de nettoyer et de reconstruire le projet, puis de générer un apk signé. toutes les configs exactement les mêmes mais ça a marché cette fois

Zeeshan Tufail
la source
3
J'ai nettoyé et reconstruit le projet, puis cela a bien fonctionné. +1
sanjeeb
1
Cela a fonctionné pour moi. Ce n'est pas une "fonctionnalité" sympa pour un IDE de gâcher la gestion d'informations cruciales comme ça.
Marc-André Weibezahn
Confirmé dans Android Studio 3.6.2 PS Je t'aime
bjm904
9

[Android Studio 3.3] J'ai rencontré l'erreur "Impossible de récupérer la clé" lors de la génération d'un APK signé. J'ai pu vérifier dans un ancien fichier idea.log l'exactitude de mon mot de passe: les mots de passe Key Store et Key étaient identiques et corrects.

Mise à jour du mot de passe clé dans le terminal:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

Il ne semble plus possible d'avoir des mots de passe identiques pour le keystore et la clé. Le keytool m'a donné une erreur, lorsque j'ai essayé. Après avoir défini un mot de passe différent pour la clé, Android Studio a généré un APK signé.

Peut-être que dans les versions précédentes d'Android Studio, les mots de passe devaient être identiques - maintenant, c'est peut-être le contraire.

LiebrandApps
la source
J'ai mis à jour mon application il y a 2 semaines et aujourd'hui ne fonctionnera pas. J'utilise ceci pour changer les mots de passe pour qu'ils soient les mêmes et pour mettre à jour Android Studio, maintenant j'ai réalisé une nouvelle version.
Alejandro Cumpa
Entre la réponse de @ Build3r et celle-ci, j'ai pu définir les deux mots de passe sur des valeurs différentes et acceptables et signer avec succès mon application. Merci les gars!
Peter Gluck
3

Cela peut aider quelqu'un.

Quelques jours avant, j'ai sauvegardé mon projet Android sur gitlab, puis installé Windows 10. Après cela, je l'ai cloné. Je connaissais exactement l'alias de la clé et les deux mots de passe.

Ensuite, lors de la génération d'un apk signé, j'ai entré ces informations d'identification mais j'ai échoué.

J'avais placé le fichier jks dans le dossier de l'application. Je l'ai supprimé de là et créé un dossier séparé dans le dossier racine du projet Android et y ai placé le fichier jks .

Ensuite, j'ai essayé de nettoyer, de reconstruire le projet, puis de redémarrer le studio Android. Enfin, il a construit l'apk signé: D

Makarand
la source
2

Ce problème se produit uniquement lorsque votre mot de passe clé ou mot de passe du fichier de clés ne correspond pas.

Arjun G
la source
2

Mes mots de passe étaient identiques et contenaient toujours cette erreur. Nettoyer, reconstruire et redémarrer le studio Android n'a pas fonctionné pour moi. La seule solution qui fonctionnait pour moi était de déplacer le fichier keystore.jks vers un nouvel emplacement. J'espère que cela t'aides.

Andrain
la source
1

Je viens de supprimer la section signatureConfigs de mon fichier de graduation d'application. Ensuite, reconstruisez le projet et cela a fonctionné à nouveau.

Martin B
la source
0

J'ai eu un coup de chance de vérifier dans Android Studio l'onglet Structure du projet / Signature, et j'ai trouvé le mot de passe clé et le mot de passe du magasin répertoriés en texte brut. Je pensais qu'ils étaient identiques les uns aux autres, mais ce n'était pas le cas.

saswanb
la source
0

Si vous avez eclipse en cours d'exécution, essayez de l'arrêter et de générer à nouveau un apk signé.

Dans mon cas, j'ai vérifié que tous les mots de passe sont corrects et même généré un nouveau magasin de clés depuis le studio Android. Cela ne fonctionnait toujours pas, mais après avoir arrêté Eclipse en cours d'exécution, tout a fonctionné, avec l'ancien magasin de clés que j'ai utilisé ou avec un nouveau magasin de clés.

RedSIght
la source
0

J'ai déjà compressé mon fichier de signature lors de sa création. Quand j'ai eu cette erreur, je l'ai réutilisée. Vous pouvez l'utiliser si vous avez une sauvegarde. Je pense que nous avons cassé des choses avant qu'ils ne s'en rendent compte.

Mahmut K.
la source
0

J'étais confronté au même problème. Dans mon cas, le projet Après la synchronisation avec les fichiers Gradle a résolu ce problème. Cela pourrait aider quelqu'un.

Vikas Rai
la source
0

J'ai simplement supprimé le .imlfichier de mon projet . Puis remodelé le projet et cela a fonctionné une fois de plus.

Muhammad Waleed
la source