我正在使用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'执行失败。
无法从密钥库读取密钥
首先检查您的密钥库文件,在本示例中,您创建的文件名为my-release-key.keystore。如果其正确且确实存在于文件夹Users/bournewang/Documents/Project
中,请检查别名,在您的示例中为-alias alias_name,但在配置中,您指定了别名mike
为了找出问题所在,您可以使用gradle的signingReport
命令。
在Mac上:
./gradlew signingReport
在Windows上:
gradlew signingReport
最有可能您的密钥库文件不存在您的密钥别名。
此answer应该可以解决您的签名问题;)
删除double-quotes
解决了我的问题,现在已解决:
DEBUG_STORE_PASSWORD=androiddebug
DEBUG_KEY_ALIAS=androiddebug
DEBUG_KEY_PASSWORD=androiddebug
就我而言,从其他来源复制文本时,它以某种方式在剪贴板输入的末尾包含了空格。这样,密钥密码的末尾会有一个空格。
对于不使用签名配置并尝试通过在命令行中键入所有参数来测试Cordova Release命令的用户,如果密码中包含特殊字符,则可能需要将密码用单引号引起来
cordova run android --release -- --keystore=../my-release-key.keystore --storePassword='password' --alias=alias_name --password='password'
大问题是别名或其他密码错误。请检查您的密码,问题就解决了。如果您忘记了密码,则可以从androidStuido3.0 / System / Log中恢复它...搜索关键字密码,然后您将被保存。
它可以是任何一个参数,而不仅仅是文件名或别名-对我来说,它是密钥密码。