我已经搜索了StackOverflow一段时间了,但我只是想确保......
我刚刚擦了笔记本电脑,并备份了我的所有文件。我备份了我的android.jks文件,它又回来了。当我尝试生成一个已签名的APK时,它给了我每个人都得到的同样可怕的错误:
Error:Execution failed for task ':app:packageRelease'.
> Failed to read key conjugationappkey from store
"/Users/wasimsandhu/android.jks": Cannot recover key
我有我的android.jks,密钥密码,密钥存储密码。一切都是正确的。我错过了什么?我备份了所有文件,所以如果有我需要的特定文件,我可以找到它,但我不知道该怎么做......
如果我没有任何意义,请让我澄清一下。谢谢!
我并不感到惊讶,因为没有获得任何牵引力,但这是我为任何偶然发现这篇文章的人所做的。
正如我所说,我的所有文件都已备份。我从旧备份恢复了android.jks文件。然后,我打开了一个终端窗口,输入以下内容:
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]
密钥库和密钥密码必须相同!这解决了我的问题,我希望它也能帮到你。
它可能会帮助某人。
几天前我在gitlab上备份我的android项目,然后安装了Windows 10.之后我克隆了它。我完全知道密钥别名和密码。
然后在生成签名的apk时我输入了这些凭据但失败了。
我已将jks文件放在app文件夹中。我从那里删除它并在android项目的根文件夹中创建单独的文件夹并在那里放置jks文件。
然后我尝试了清理,重建项目,然后重新启动android studio。最后它构建了签名的apk:D
[更新:这不再适用于Android studio 3.0及以上版本]
我遇到了类似的问题,并且在互联网上浪费3个小时之后没有一个解决方案有效,我决定深入挖掘。
以下是我解决它的方法:对我来说“无法恢复密钥”错误是因为我的“密钥库密码”是正确的,但是“密钥密码”(密钥别名)不正确。我很确定这两个密码是相同的,但令我沮丧的是他们不是,我不知道第二个密码是什么。因为我在签出可以找到的日志文件之前已经签了APK:
从您签署apk的日期打开日志文件,并查找以下条目:
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***,
你会发现明文密码。如果忘记密码,这甚至可以工作。
如果它可以帮助任何人 - 在我的情况下的问题是“密钥库密码”和“密钥密码”是不正确的。
[Android Studio 3.3]我在生成已签名的APK时遇到了“无法恢复密钥”错误。我能够检查一个旧的idea.log以获取我的密码的正确性:密钥存储区和密钥密码是完全相同和正确的。
更新终端中的密钥密码:
keytool -keypasswd -alias MYKEY -keystore KEYSTORE
似乎不再可能为密钥库和密钥使用相同的密码。当我尝试时,keytool给了我一个错误。为密钥设置不同的密码后,Android Studio会生成已签名的APK。
也许,在之前的Android Studio版本中,密码必须相同 - 现在可能相反。
仅当您的密钥密码或密钥库密码不匹配时,才会出现此问题。
我在答案和评论中尝试了所有给出的建议:(
我的密钥密码和密钥库密码完全相同。使用android studio 3.4
对我有用的是强制退出Android Studio,重新启动,清理并重建项目,然后生成签名的apk。所有配置完全相同但这次工作
我有幸在Android Studio中查看了Project Structure / Signing选项卡,并找到了以纯文本形式列出的密钥密码和商店密码。我以为它们彼此是一样的,但它们不是。
如果您正在运行eclipse,请尝试将其关闭并再次生成签名的apk。
就我而言,我检查了所有密码是否正确,甚至从Android工作室生成了一个新的密钥库。它仍然无法正常工作,但在关闭正在运行的eclipse之后,一切正常,我使用的旧密钥存储区或新生成的密钥存储区。
在我第一次创建它之前,我已经压缩了我的签名文件。当我收到此错误时,我再次使用它。如果您有备份,可以使用它。我想我们在他们注意到之前已经破坏了。