Android Studio:无法恢复密钥

问题描述 投票:73回答:11

我已经搜索了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 android-keystore
11个回答
89
投票

我并不感到惊讶,因为没有获得任何牵引力,但这是我为任何偶然发现这篇文章的人所做的。

正如我所说,我的所有文件都已备份。我从旧备份恢复了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]

密钥库和密钥密码必须相同!这解决了我的问题,我希望它也能帮到你。


0
投票

它可能会帮助某人。

几天前我在gitlab上备份我的android项目,然后安装了Windows 10.之后我克隆了它。我完全知道密钥别名和密码。

然后在生成签名的apk时我输入了这些凭据但失败了。

我已将jks文件放在app文件夹中。我从那里删除它并在android项目的根文件夹中创建单独的文件夹并在那里放置jks文件。

然后我尝试了清理,重建项目,然后重新启动android studio。最后它构建了签名的apk:D



58
投票

[更新:这不再适用于Android studio 3.0及以上版本]

我遇到了类似的问题,并且在互联网上浪费3个小时之后没有一个解决方案有效,我决定深入挖掘。

以下是我解决它的方法:对我来说“无法恢复密钥”错误是因为我的“密钥库密码”是正确的,但是“密钥密码”(密钥别名)不正确。我很确定这两个密码是相同的,但令我沮丧的是他们不是,我不知道第二个密码是什么。因为我在签出可以找到的日志文件之前已经签了APK:

  • C:\ Users \用户your_username \ .AndroidStudio2.1 \ SYSTEM \日志\

从您签署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***, 

你会发现明文密码。如果忘记密码,这甚至可以工作。


18
投票

如果它可以帮助任何人 - 在我的情况下的问题是“密钥库密码”和“密钥密码”是不正确的。


5
投票

[Android Studio 3.3]我在生成已签名的APK时遇到了“无法恢复密钥”错误。我能够检查一个旧的idea.log以获取我的密码的正确性:密钥存储区和密钥密码是完全相同和正确的。

更新终端中的密钥密码:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

似乎不再可能为密钥库和密钥使用相同的密码。当我尝试时,keytool给了我一个错误。为密钥设置不同的密码后,Android Studio会生成已签名的APK。

也许,在之前的Android Studio版本中,密码必须相同 - 现在可能相反。


2
投票

仅当您的密钥密码或密钥库密码不匹配时,才会出现此问题。


1
投票

我在答案和评论中尝试了所有给出的建议:(

我的密钥密码和密钥库密码完全相同。使用android studio 3.4

对我有用的是强制退出Android Studio,重新启动,清理并重建项目,然后生成签名的apk。所有配置完全相同但这次工作


0
投票

我有幸在Android Studio中查看了Project Structure / Signing选项卡,并找到了以纯文本形式列出的密钥密码和商店密码。我以为它们彼此是一样的,但它们不是。


0
投票

如果您正在运行eclipse,请尝试将其关闭并再次生成签名的apk。

就我而言,我检查了所有密码是否正确,甚至从Android工作室生成了一个新的密钥库。它仍然无法正常工作,但在关闭正在运行的eclipse之后,一切正常,我使用的旧密钥存储区或新生成的密钥存储区。


0
投票

在我第一次创建它之前,我已经压缩了我的签名文件。当我收到此错误时,我再次使用它。如果您有备份,可以使用它。我想我们在他们注意到之前已经破坏了。

© www.soinside.com 2019 - 2024. All rights reserved.