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

问题描述 投票:64回答:8

我正在使用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'执行失败。

无法从密钥库读取密钥

android gradle apk
8个回答
60
投票

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


62
投票

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

在Mac上:

./gradlew signingReport

在Windows上:

gradlew signingReport

8
投票

最有可能您的密钥库文件不存在您的密钥别名。

answer应该可以解决您的签名问题;)


3
投票

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

DEBUG_STORE_PASSWORD=androiddebug
DEBUG_KEY_ALIAS=androiddebug
DEBUG_KEY_PASSWORD=androiddebug

2
投票

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


0
投票

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

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

0
投票

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.