无法在Android Studio中导出已签名的APK

时间:2014-07-27 05:22:30

标签: android keystore jks

我用的时候 keytool -list -keystore /path/to/keyfile.jks 并提供我的密码,我能够看到那里的条目,但是当我尝试使用相同的密码生成签名的APK时使用相同的密码时,我收到错误

  

无法加载密钥库:密钥库被篡改,或密码错误

请帮忙!

3 个答案:

答案 0 :(得分:11)

经过20个小时的不知疲倦搜索后得到了答案。 显然这个角色有一些问题'&'在这里提到的密码https://code.google.com/p/android/issues/detail?id=36350 虽然在我的情况下,角色是' @'。

对于任何陷入困境的人来说,这就是我所做的(以及应该为他们做些什么)

  1. 我使用keytool -keypasswd -alias <key_name> -keystore mykeystorek.jks命令更改密钥别名密码的密码。
  2. 由于我怀疑我的原始文件有一些问题,我认为最好将密钥导出到另一个文件。我使用keytool -importkeystore -srckeystore my.keystore.jks -destkeystore new.keystore -deststoretype pkcs12后跟keytool -importkeystore -srckeystore new.keystore -srcstoretype pkcs12 -destkeystore final.keystore -deststoretype jks来做到这一点。
  3. 这样做,以PKCS12格式导出原始密钥库值,然后在文件名final.keystore中返回Java Keystore格式。在所有这些命令中,提示询问了我精心选择的新目的地密码,避免@&

    它现在有效! 如上面分享的链接所示,这似乎是由于SDK Tools 20中推送了一些更新。我知道它很糟糕。 其他应用程序所有者似乎也非常生气。 :(

答案 1 :(得分:0)

无论我尝试什么,我都无法让Android Studio签署我的APK。

即使我尝试创建新的密钥库和密钥并在Android Studio构建版本中使用它来签名,我也收到了此错误。

最后,我通过使用Keystore资源管理器将密码重新设置为两者密钥库以及我正在使用的签名密钥来实现工作。

这对我来说是令人不安的令人困惑的。这不应该发生,但确实如此。

答案 2 :(得分:-1)

我有一个类似的问题,源于损坏的my-up-key文件。为了解决问题,我从app和android目录中将其删除,并通过此链接https://reactnative.dev/docs/signed-apk-android再次创建了它。运行gradlew buildRelease命令成功。