【问题标题】:No key with alias found in keystore在密钥库中找不到具有别名的密钥
【发布时间】:2017-02-26 02:27:09
【问题描述】:

我们的安卓项目由移动和穿戴应用(穿戴应用正在开发中)组成,我们正在尝试发布移动应用。当我们尝试生成签名的 apk 时,我们会收到以下消息:

Error:Execution failed for task ':wear:packageRelease'.
> com.android.ide.common.signing.KeytoolException: Failed to read key
toyanathpatro from store "/home/adventure/toyanath_patro_key/toyanath_patro_key":
No key with alias 'toyanathpatro' found in keystore /home/adventure/toyanath_patro_key/toyanath_patro_key

正如它所说,:wear:packageRelease 的任务失败,实际上我们在选择签署 apk 时只选择了移动设备。

谁能指出我的错误?提前致谢。

【问题讨论】:

    标签: android android-keystore jks


    【解决方案1】:

    问题似乎与拼写错误的密钥别名有关 在我的情况下,别名应该是 toyanath patro 我错误地尝试使用 toyanathpatro 。所以最好的建议是:

    1. 请勿在密钥别名中使用空格或不可见字符。尽可能的

    2. 键别名可编辑字段右侧有一个小选择按钮(3 个水平点)。使用该按钮查找驻留在该签名文件中的别名。

    【讨论】:

    • 呸!你拯救了我的一天!
    • 他们应该让你成为圣人。
    • 是的,通过单击三个点找到了正确的别名。谢谢!
    【解决方案2】:

    在我的情况下,我已经生成了我的 keystore 文件。我正在更新我的应用程序,当我生成签名的 apk 时,我正在创建新的 key_alias。相反,我从我的密钥库文件中选择了现有的密钥别名,它已解决 :)

    【讨论】:

      【解决方案3】:

      如果您在创建密钥时使用此代码

      " keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload"

      您必须从 key.properties 更新“keyAlias”属性

      来自:keyAlias=key

      到:keyAlias=上传

      【讨论】:

        【解决方案4】:

        用于生成 .jks 密钥,

        keytool -genkey -alias myKeyStore -keyalg RSA -keystore "C:\apk\fastmoneyv1.jks"

        【讨论】:

          【解决方案5】:

          我最初使用 key0 进行构建。它因“构建 APK 时出错”而失败。下一次,我把它改成 'key1' 就可以工作了。

          【讨论】:

            【解决方案6】:

            生成密钥库后使用-

            keytool -genkeypair -v -keystore my-key.keystore -alias my-alias -keyalg RSA - 
            keysize 2048 -validity 10000
            

            您应该在 gradle.properties 中使用别名的确切名称:-

            MYAPP_UPLOAD_STORE_FILE=my-key.keystore
            MYAPP_UPLOAD_KEY_ALIAS=my-alias <------this name
            MYAPP_UPLOAD_STORE_PASSWORD=***
            MYAPP_UPLOAD_KEY_PASSWORD=***
            

            【讨论】:

              【解决方案7】:

              密码不要使用大写键。它对我有用。

              【讨论】:

                【解决方案8】:

                构建 -> 重建项目

                似乎旧的键名被缓存了。

                【讨论】:

                  【解决方案9】:

                  我有一个无法摆脱的粘性配置。即使我在签名配置窗口中更改了别名,它仍然给我错误“找不到别名”以及我第一次输入的原始(错误)别名。我手动搜索并在路径上找到了一个文件...

                  [项目]/android/app/build/intermediates/signing_config/release/out/signing-config.json

                  ...其中包含我第一次输入的原始(错误)别名。删除文件并再次构建/签署应用程序。希望它可以帮助某人。

                  【讨论】:

                    【解决方案10】:

                    点击Build&gt;Edit library and dependencies

                    然后单击签名选项卡中的加号按钮。生成签名 apk 构建时,密钥别名与别名密钥相同。

                    【讨论】:

                      【解决方案11】:

                      在我的情况下,android studio 默认创建别名'key0',它是文件中唯一的别名。 我的快速解决方案:使用您想要的别名从 android studio 创建新的密钥文件。将新创建的文件与“生成的签名 APK”一起使用。如果一切顺利,您可以使用“项目结构”中设置的属性运行应用程序。

                      【讨论】:

                      • 拯救了我的一天,兄弟!我试了将近一个小时,你的回答让我起死回生。
                      【解决方案12】:

                      在您的 build.gradle 中,您定义了一个签名配置,它指向一个不在您的代码库中的密钥库。

                      类似的东西。

                      android {
                          ...
                          buildTypes {
                              release {
                                  signingConfig signingConfigs.staging
                                  ...
                              }
                          }
                          signingConfigs {
                              defaultSignature {
                                  keyAlias 'default'
                                  keyPassword 'password'
                                  storeFile file('default-keystore.jks')
                                  storePassword 'password'
                              }
                          }
                      }
                      

                      【讨论】:

                      • 遗憾的是,没有任何想法会导致这种情况?
                      • 您没有提供任何反馈。你试过我的建议了吗?错误信息还是一样吗?另外,请提供完整的 build.gradle。
                      • 我真的很抱歉无法回复,因为我一直在没有互联网的假期。一旦我把笔记本电脑带回家,我一定不会忘记尝试慷慨的您给出的建议。
                      • 帮助很大。能够弄清楚我的密钥别名有些不同。用这个来改变knowledge.digicert.com/solution/SO29304.html
                      猜你喜欢
                      • 2022-01-24
                      • 2015-05-11
                      • 2019-04-03
                      • 1970-01-01
                      • 2014-03-11
                      • 1970-01-01
                      • 1970-01-01
                      • 2014-06-17
                      • 1970-01-01
                      相关资源
                      最近更新 更多