【问题标题】:Android studio Update bundle jarsigner: key associated with key0 not a private keyAndroid工作室更新捆绑jarsigner:与key0关联的密钥不是私钥
【发布时间】:2019-05-30 22:14:04
【问题描述】:

这些是我正在采取的步骤,按所示顺序,在修复错误后通过 Android Studio 更新已发布的应用

  1. 修复错误。

  2. 在 build.gradle(模块)上更改为 versionCode 2 和 versionName“1.1”

  3. 生成签名包

  4. 密钥库路径是C:\Folder\Folder\Android\MyApp.jks

  5. 两个密码都正确

  6. 密钥别名:key0(默认为第一次)

但随后出现此错误:

Cause: jarsigner.exefailed with exit code 1 :
jarsigner: key associated with key0 not a private key

这可能是什么原因造成的?

【问题讨论】:

  • 您对此有什么解决方案吗?将android studio更新到3.3后我也面临这个问题
  • 我仍然面临这个问题,尝试了这里提到的所有解决方案。我正在使用 andoird studio gradle 插件 5.1.1

标签: java android-studio


【解决方案1】:

“构建”->“清理项目”,然后再次“生成签名...”-对我来说很好

【讨论】:

  • @user93796 你是否有同样的错误`原因:jarsigner.exefailed with exit code 1:`?
  • 简单但势不可挡!我们应该经常清理项目以避免可能出现这样的错误。
【解决方案2】:

这只是意味着你输入了错误的密钥让我解释一下

  1. 您的 keystore 密码正确
  2. 密钥的密码不正确

【讨论】:

  • 输出可能具有欺骗性。密钥没有问题,只需要仔细检查密码
【解决方案3】:

我也遇到了同样的问题,我尝试过 Clean Build 和 Invalidate Caches/Restart 但没有奏效。最后我输入了 Wrong KeyStore 密码,然后它显示了一些错误,例如 jarsigner error: java.lang.RuntimeException: keystore load: Keystore was tampered with, or password was incorrect。然后我尝试了原来的,它成功了。

【讨论】:

    【解决方案4】:

    适用于为 Play 商店构建 React Native 应用程序的候选发布版本,或者在没有 Android Studio 的情况下构建的人。

    a) 如果您以前在发布包中遇到过错误,则清理项目特别有用:

    cd android
    ./gradlew clean
    


    b) 检查您的密钥库是否创建正确,其中嵌入了有效的、可导出的证书:

    keytool -export -alias your-keystore-alias -file mycertificate.crt -keystore /path/to/keystore 
    

    系统将提示您输入生成密钥库时使用的密钥库密码。如果您成功创建了mycertificate.crt 文件,则说明您的密钥库没有任何问题。有效。


    c) 如果您没有在您的 gradle 版本构建属性中明确提供密钥密码,而只是存储密码(如下所示),也会出现 not a private key 错误:

    MYAPP_UPLOAD_STORE_FILE=my-app.keystore
    MYAPP_UPLOAD_KEY_ALIAS=my-app
    MYAPP_UPLOAD_STORE_PASSWORD=keystorePassword
    MYAPP_UPLOAD_KEY_PASSWORD=
    

    使用keytool 生成签名证书时,除了密钥库密码之外,还有一个可选参数可以生成单独的证书密码。但是,如果没有提供证书/密钥密码,它会继承密钥库密码。所以在这种情况下,一组有效的属性将是:

    MYAPP_UPLOAD_STORE_FILE=my-app.keystore
    MYAPP_UPLOAD_KEY_ALIAS=my-app
    MYAPP_UPLOAD_STORE_PASSWORD=keystorePassword
    MYAPP_UPLOAD_KEY_PASSWORD=keystorePassword
    

    【讨论】:

    • 谢谢。刚刚更新MYAPP_UPLOAD_KEY_PASSWORD=keystorePassword 和所有工作
    【解决方案5】:

    升级到 android studio 3.3 后我也遇到了这个问题,我分 3 步解决了。但首先要确保备份整个项目。

    1. 在 Android Studio 中,从 “使用嵌入式 JDK” 转到 File > Project Structureuntick,然后点击 OK
    2. 转到计算机设置(系统设置)(win + 暂停键),然后转到高级系统设置>环境变量。如果 JAVA_HOME 不存在,则添加它并设置已安装 JDK 的路径。 由于我找不到直接的方法来修改我的项目中以某种方式升级到 android studio 3.3 设置的 jdk 路径,所以我做了以下操作(最后一步)但请确保在此之前进行备份。
    3. 为了确保我引导到项目视图的位置,我从根目录中删除了“.grade”、“.idea”、“capture”、“gradle”文件夹和“build”、“release”、“lib”来自“app”的文件夹保留“src”。删除了 root.iml 和 没有删除 app.iml 文件然后重建项目,然后创建签名包。

    2 次尝试成功。老实说,我通过从备份恢复文件做了最后一步。在删除这些文件夹时,我搞砸了 1 次。

    【讨论】:

      【解决方案6】:

      如果

      ,您似乎输入了错误的密码

      “构建”>“清理项目”

      没有解决你的问题。

      尝试提供的参考链接: Click here

      【讨论】:

        【解决方案7】:

        对于“清理项目”没有运气的人,请尝试在 Android Studio 终端中使用以下命令更改密钥密码

        keytool -keypasswd -alias yourAliasName -keystore pathToYourKeystoreFile 
        

        之后系统会提示您输入密钥库密码,如果正确则可以更改密钥密码。

        我遇到了同样的问题,我将两个密码都写在了一张纸上,突然(Android Studio 更新?)密钥密码不再起作用了。 Keystore 工作,可以选择别名,但是在生成签名的应用程序时,与您遇到的错误相同。

        【讨论】:

        • 当我运行这个命令时,它会询问我的密码,当我把它放进去时,它只会说“keytool error: java.io.IOException: Keystore was tampered with, or password is wrong”但是如果我尝试在向导中捆绑我的应用程序我输入 keystone 密码并且它很好,因为它让我选择要工作的密钥,然后显示提到的错误 OP,知道为什么会这样吗?
        【解决方案8】:

        在这里尝试了所有解决方案后,它要么不起作用,要么太复杂而无法使其工作。

        最后,只需重新启动我的电脑就有帮助。

        【讨论】:

          【解决方案9】:

          您的密码中有特殊字符?继续阅读

          (不是 100% 肯定,但是)我的密钥密码中有特殊字符,我决定删除所有双引号 ("),只是因为它可能是罪魁祸首,而且有效。

          【讨论】:

            【解决方案10】:

            注意密码的字符数: 6 分钟 我已经尝试了 20 多个 => 这是 ko 12就好了

            不要用专车,caps,nums就够了

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-07-13
              • 2019-04-03
              • 2015-01-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-01-15
              • 1970-01-01
              相关资源
              最近更新 更多