APK签名错误:无法从密钥库中读取密钥

时间:2013-12-08 12:13:28

标签: android gradle apk

我正在开发intellij和gradle下的android应用程序。并使用以下方式生成密钥库文件:

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

然后在build.gradle中使用密钥库文件:

signingConfigs {
    robert {
        storePassword 'robert'
        storeFile file('/Users/bournewang/Documents/Project/android.keystore')
        keyPassword 'robert'
        keyAlias 'mike'
    }
}

当最终尝试生成签名的apk文件时:./ gradlew assembleRelease

它给出了错误:

任务执行失败':Myexample:packageRelease'。

  

无法从密钥库中读取密钥

12 个答案:

答案 0 :(得分:60)

首先检查您的密钥库文件,在您的示例中,您创建名为my-release-key.keystore的文件。如果其正确且真正存在于文件夹Users/bournewang/Documents/Project中,则检查别名,在您的示例中,它是 -alias alias_name ,但在配置中您指定了别名 mike

答案 1 :(得分:53)

为了找出问题所在,你可以使用gradle的signingReport命令。

在mac上:

./gradlew signingReport

在Windows上:

gradlew signingReport

答案 2 :(得分:8)

很可能您的密钥别名对于您的密钥库文件不存在。

answer应修复您的签名问题;)

答案 3 :(得分:3)

删除double-quotes解决了我的问题,现在是:

DEBUG_STORE_PASSWORD=androiddebug
DEBUG_KEY_ALIAS=androiddebug
DEBUG_KEY_PASSWORD=androiddebug

答案 4 :(得分:2)

就我而言,在从其他来源复制文本时,它以某种方式包含了剪贴板条目末尾的空格。这样,密钥密码最后有一个空格。

答案 5 :(得分:0)

它可以是参数中的任何一个,而不仅仅是文件名或别名 - 对我来说它是密钥密码。

答案 6 :(得分:0)

对于不使用签名配置并尝试通过在命令行输入所有参数来测试Cordova Release命令的用户,如果密码中包含特殊字符,则可能需要用单引号将密码引起来

cordova run android --release -- --keystore=../my-release-key.keystore --storePassword='password' --alias=alias_name --password='password'

答案 7 :(得分:0)

最大的问题是别名或其他密码错误。请检查您的密码,您的问题已解决。如果您忘记了密码,则可以从androidStuido3.0 / System / Log中恢复密码...搜索关键字密码,然后保存您的密码

答案 8 :(得分:0)

我今天遇到了同样的错误。

<块引用>

任务“:app:packageRelease”执行失败。 执行 com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable 时发生故障 com.android.ide.common.signing.KeytoolException:无法从存储“E:\keystore\news.jks”读取关键新闻:密钥库被篡改,或密码不正确

我有相同的密钥密码和密钥库密码。但是我写错了密码

答案 9 :(得分:0)

确保你有正确的folliwn

  • keystore 文件路径
  • keystore 别名
  • keystore 密码

android/key.properties

中的密钥库

enter image description here

答案 10 :(得分:0)

在 Android Studio 中转到 Build > Clean Project,然后使用 Build > Generate Signed Bundle / APK... 重新生成已签名的 APK,然后清除密码字段并重新输入密码

答案 11 :(得分:0)

在我的情况下,由于某种原因,在将 android studio 更新到最后一个稳定版本后,默认情况下始终使用的密码已更改,我只需要再次设置正确的密码就可以了