【问题标题】:How to solve "Key was created with errors:"如何解决“密钥创建时出错:”
【发布时间】:2019-10-06 11:55:48
【问题描述】:

JKS 密钥库使用专有格式。建议迁移 到 PKCS12,这是一种使用“keytool”的行业标准格式 -importkeystore -srckeystore -destkeystore -deststoretype pkcs12"

在生成密钥时,我在使用 android studio 3.4(32 位版本)时遇到此类错误,但是当我在另一台使用 android studio 3.4(64 位)的笔记本电脑中生成相同的源代码到 apk 时版本)。它在 64 位笔记本电脑和 android studio 中运行良好。

【问题讨论】:

    标签: android-studio jks


    【解决方案1】:

    我今天遇到了同样的问题,Android 似乎希望我们将密钥从 JKS 专有格式迁移到 PKCS12 格式(如警告所示)。 为此,您需要使用 Android Studio 附带的 keytool。

    1。找到keytool.exe

    keytool.exe 通常位于文件夹 C:\Program Files\Android\Android Studio\jre\bin 中。如果你在那里找不到 keytool,那么你必须搜索它。

    2。使用 Windows cmd 导航到 jre 文件夹

    在 Windows 中,打开 cmd 并键入:

    cd C:\Program Files\Android\Android Studio\jre\bin

    当然,如果你的keytool.exe存放在其他位置,你需要在cd后面输入正确的路径

    3。更改密钥库格式

    在 cmd 中您已经导航到包含 keytool.exe 的文件夹,所以现在您可以在 cmd 中输入以下命令:

    keytool -importkeystore -srckeystore your_keystore_destination\your_keystore_file.jks -destkeystore your_keystore_destination\your_keystore_file.jks -deststoretype pkcs12

    别忘了改变

    your_keystore_destination\your_keystore_file.jks

    使用正确的路径。在你的例子中它会是

    D:\App Collection\App1 All in one Collection\keystorefile.jks

    注意:

    如果您为密钥库和密钥指定了不同的密码,则需要在步骤 3 的命令中添加 -destkeypass your_key_password

    【讨论】:

    • 尝试这个我得到一个警告:成功迁移到非 JKS/JCEKS。安全副本已保存为:path\keyStoreFile.jks.old。检查新文件仍然是 file.jks....可能出了什么问题?或者这是预期的结果?我期待看到一个 file.pcks12....谢谢大家分享...
    • 编辑:只需在上面的第三步尝试将 .jks 扩展名替换为 .p12 扩展名,就在第二个路径(将保存新文件的路径)上,您将收到一个成功导入消息和 .p12 文件...无论如何感谢 Leon 的分享,祝大家编码愉快...
    【解决方案2】:

    keyStore 文件所在的文件夹打开终端时,以下命令在 Mac 上对我有用:

    keytool -importkeystore -srckeystore YOURKEYSTOREFILENAME -destkeystore YOURKEYSTOREFILENAME.p12 -srcstoretype JKS -deststoretype PKCS12
    

    【讨论】:

      【解决方案3】:

      我只是忽略了这个错误并使用了生成的密钥。我可以毫无困难地上传我的应用程序。

      【讨论】: