Android Studio: cannot recover key

匿名 (未验证) 提交于 2019-12-03 01:52:01

问题:

I have searched StackOverflow for a while, but I just wanted to make sure...

I wiped my laptop a while ago, and backed up all my files. I have my android.jks file backed up, and it's back in place. When I try to generate a signed APK, it's giving me the same dreaded error everyone is getting:

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

I have my android.jks, the key password, the key store password. Everything is correct. What am I missing? I backed up all of my files, so if there is a specific file I need, I could find it, but I have no idea what to do...

If I'm not making any sense, please ask me to clarify. Thanks!

回答1:

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.



回答2:

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.



回答3:

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



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!