Android Studio:无法恢复密钥

Android Studio: cannot recover key

我已经在 Whosebug 上搜索了一段时间,但我只是想确定...

我刚才擦了笔记本电脑,并备份了所有文件。我备份了我的 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、密钥密码、密钥库密码。一切都是正确的。我错过了什么?我备份了我所有的文件,所以如果有我需要的特定文件,我可以找到它,但我不知道该怎么做...

如果我说的不对,请让我澄清一下。谢谢!

我对这没有获得任何关注并不感到惊讶,但这是我为偶然发现此问题的任何人所做的事情 post。

正如我所说,我的所有文件都已备份。我从旧备份恢复了 android.jks 文件。然后,我打开终端 window 并输入以下内容:

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]

密钥库和密钥密码必须相同!这解决了我的问题,希望对您也有帮助。

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

我遇到了类似的问题,在互联网上浪费了 3 个小时后 none 的解决方案有效,我决定深入研究。

我是这样解决的: 我的 "Cannot recover key" 错误是因为我的 "Keystore password" 是正确的"Key Password" (密钥别名)不正确。我很确定这两个密码是相同的,但令我沮丧的是它们不是,而且我不知道第二个密码是什么。因为我在检查日志文件之前已经签署了一个 APK 可以找到:

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

打开自您签署 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***, 

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

如果它可以帮助任何人 - 我的问题是 "Key store password" 和 "Key password" 不正确。

我有幸检查了 Android Studio 的项目 Structure/Signing 选项卡,发现密钥密码和存储密码以明文形式列出。我以为他们彼此一样,但他们不是。

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

如果您有eclipse 运行,请尝试将其关闭并重新生成签名的apk。

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

[Android Studio 3.3] 我在生成签名 APK 时遇到 'cannot recover key' 错误。我能够检查旧 idea.log 密码的正确性:Key Store 和 Key 密码 相同且正确。

正在终端中更新密钥密码:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

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

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

我在第一次创建签名文件时已经压缩了它。当我得到这个错误时,我再次使用它。如果您有备份,则可以使用它。我想我们已经在他们注意到之前就把东西弄坏了。

它可能会对某人有所帮助。

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

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

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

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

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

我的密钥密码和密钥库密码完全一样。 使用 android 工作室 3.4

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

我遇到了同样的问题。在我的例子中,使用 gradle 文件同步项目后解决了这个问题。这可能会对某人有所帮助。

我的密码相同,但仍然出现此错误。清理、重建和重新启动 Android 工作室对我不起作用。唯一对我有用的解决方案是将 keystore.jks 文件移动到新位置。希望这可以帮助。

我刚刚从我的应用 gradle 文件中删除了 signingConfigs 部分。 然后重建项目,它再次运行。

我只是从我的 项目 中删除了 .iml 文件。然后改造项目,又成功了。

在我的例子中,我使用的是 android studio 4.2.2,我更改了 .jks 文件位置并将其放入桌面,然后再次尝试生成密钥,它对我有用。

对我来说,解决方案是这里的 2 个解决方案的组合。我必须先进行 gradle 同步:

然后退出、清理并重建项目。

我的密码从未更改过。在不先进行 gradle 同步的情况下进行清理和重建对我来说也不起作用。 Android Studio 版本 4.1.2.

这是在大约一个月后没有生成签名包的先前版本并且之前从未遇到过此错误。

我尝试了清理和重建以及 gradle 同步,但一直收到 Cannot recover key 错误。

File > Invalidate Caches / Restart 为我解决了这个问题。

我不需要更改我的密钥密码或我的 .jks 密钥文件。我一直在使用原来的“Key store password”和“Key password”(不相同)。