Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio: cannot recover key

I'm not surprised this didn't gain any traction, but here is what I did for anyone who stumbles onto this post.

As I said, all of my files were backed up. I restored the android.jks file from an older backup. Then, I opened a Terminal window and typed in the following:

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]

The keystore and key passwords have to be the same! This fixed my problem, and I hope it helps you too.


[Update: This no longer works in Android studio 3.0 and above]

I faced the similar problem and none of the solutions worked after wasting 3 hours on Internet, I decided to dig deep.

Here is how I solved it: The "Cannot recover key" error for me was because my "Keystore password" was correct but the "Key Password" (of the key alias) was incorrect. I was pretty sure the both passwords were same but to my dismay they weren't and I didn't know what the second password was. As I had already signed an APK before I checked out the log file which can be found:

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

Open the log files from the date which you had signed the apk and look for the following entries:

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

And you will find the passwords in plain text. This will even work if you forget passwords.


If it can help anyone - the problem in my case was that the "Key store password" and "Key password" were incorrect.


I tried all given suggestions in answers and comments :(

My key password and keystore password are exactly the same. Using android studio 3.4

What worked for me was force quit Android Studio, start again, clean and rebuild project and then generate signed apk. all configs exactly the same but it worked this time


[Android Studio 3.3] I got the 'cannot recover key' error on generating a signed APK. I was able to check in an older idea.log for the correctness of my password: Key Store and Key passwords were identical and correct.

Updating the key password in the terminal:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

It seems to be no longer possible to have identical passwords for keystore and key. The keytool gave me an error, when I tried. After setting a different password for the key, Android Studio generated a signed APK.

Maybe, in previous Android Studio versions passwords had to be identical - now it may be the opposite.