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

San*_*rma 4 android keystore jks

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

无法加载密钥库:密钥库被篡改,或密码不正确

请帮忙!

San*_*rma 13

经过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.

这样做,以PKCS12格式导出原始密钥库值,然后在文件名final.keystore中返回Java Keystore格式.在所有这些命令中,提示请求新的目标密码,我仔细选择,避免@&.

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