警告:PKCS12 密钥库不支持不同的存储密码和密钥密码。忽略用户指定的 -keypass 值。在 Android Studio 中

cre*_*der 20 android android-keystore android-studio

我正在尝试创建一个新的密钥库来生成一个签名的 apk,但我收到了这样的错误,请帮助我摆脱这个错误。

在此处输入图片说明

在此处输入图片说明

Mih*_*eel 12

密钥库密码和密钥密码应相同以避免此错误。然而,在我能够发布和交付密钥存储密码和密钥密码不同的应用程序之前,我今天在更新我的应用程序时仍然使用它。如果有人能指出这里发生了什么,或者这是新 Android Studio 北极狐前后更新的一部分,请提供一些来源。

  • 这太奇怪了。我应该等待修复还是直接接受它? (4认同)

amr*_*m99 11

这是Android Studio 4.2 的一个已知问题。它在具有此限制的 JDK11 上运行。

谷歌自己的应用签名文档指出,密钥密码“应该与您为密钥库选择的密码不同”,所以我猜他们打算在某个时候解决这个问题。

  • 看起来像 JDK keytool 中的一个限制,他们“不会修复”:https://bugs.openjdk.java.net/browse/JDK-8008292 (2认同)
  • 谷歌现在已经更新了他们的文档。目前它显示“为您的密钥创建并确认安全密码。这应该与您的密钥库密码相同。(请参阅已知问题以获取更多信息)”。“已知问题”链接到 https://developer.android.com/studio/known-issues#ki-key-keystore-warning,它基本上总结了该线程的主题。他们建议的解决方法是:“要解决此问题,请为密钥和密钥库输入相同的密码。”。 (2认同)

Dai*_*oto 6

升级到 Android Studio 4.2 后我也遇到了这个问题。

我发现的一种解决方法是首先在 Android Studio 中创建具有相同密码的密钥库文件,然后切换到旧的 JDK(11 之前的版本)并使用命令keytool更新密钥密码。

  1. 查找并使用旧版本的 Java(抱歉,假设是 Mac 或 Linux,但JAVA_HOMEWindows 上的设置也应该有效。)
    $ /usr/libexec/java_home -V
    $ export JAVA_HOME=$(/usr/libexec/java_home -v OLD_VERSION)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 运行keytool以更新您的密钥密码。
    $ keytool -keypasswd -keystore PATH_TO_KEY_STORE -alias ALIAS -storepass STORE_PASSWORD -keypass OLD_KEY_PASSWORD -new NEW_KEY_PASSWORD
    
    Run Code Online (Sandbox Code Playgroud)

  • 我收到以下错误:`keytool 错误:java.lang.UnsupportedOperationException:如果 -storetype 是 PKCS12,则不支持 -keypasswd 命令` (2认同)

Vis*_*ani 6

Android Studio 4.2 版本更新

现在 Android Studio 在JDK 11上运行。由于这些变化,签名密钥问题即将到来。

解决方案

Key 和 Keystore使用相同的密码