Android Studio:无法恢复密钥

was*_*dhu 78 android android-keystore

我已经搜索了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
Run Code Online (Sandbox Code Playgroud)

我有我的android.jks,密钥密码,密钥存储密码.一切都是正确的.我错过了什么?我备份了所有文件,所以如果有我需要的特定文件,我可以找到它,但我不知道该怎么做......

如果我没有任何意义,请让我澄清一下.谢谢!

was*_*dhu 97

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

正如我所说,我的所有文件都已备份.我从旧备份恢复了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]
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢!您是如何发现密码必须相同的?我今天开始收到此错误.到目前为止,一切都使用两个不同的密码. (4认同)
  • 它现在仍然在我的情况下给出这个错误:"keytool error:java.security.UnrecoverableKeyException:无法恢复密钥" (4认同)
  • 我的密码是一样的,我仍然有这个错误.我能够使用相同的密钥签署以前的版本.那我该怎么办? (3认同)
  • 对我来说也是一样的问题。执行第一行后,它要求输入密码。我给了它,但它说“keytool 错误...keystore 被篡改或密码不正确” (2认同)
  • 有趣的是,[Android 文档](https://developer.android.com/studio/publish/app-signing#generate-key) 中明确提到这两个密码应该不同 (2认同)

Bui*_*d3r 60

[更新:这不再适用于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***, 
Run Code Online (Sandbox Code Playgroud)

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

  • 它不适用于AndroidStudio 3.0. (6认同)
  • 这适用于AndroidStudio3.0吗?我看到我的密码为*********. (5认同)
  • 是!最后!我的密码位于您提到的文件夹中的"idea"文件中.我甚至尝试使用密码破解程序,但它给了我Alias通行证,虽然它是密钥库,但事实并非如此. (3认同)
  • @Androidcoder Android Studio 团队在最近的版本中修复了这个漏洞。 (2认同)

Mor*_*rZa 20

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

  • 相同."无法在问题上恢复关键点"非常清楚 (3认同)

Zee*_*ail 20

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

我的密钥密码和密钥库密码完全相同。使用安卓工作室 3.4

对我有用的是强制退出 Android Studio,重新启动,清理并重建项目,然后生成签名的 apk。所有CONFIGS一模一样,但它的工作这一次

  • 我清理并重建了该项目,然后它运行良好。+1 向上 (3认同)

小智 7

[Android Studio 3.3]生成签名的APK时出现“无法恢复密钥”错误。我能在我的密码的正确性旧的idea.log检查:密钥存储和密钥密码相同的,正确的。

在终端中更新密钥密码:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE
Run Code Online (Sandbox Code Playgroud)

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

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