使用正确密钥库密码签名Release APK时遇KeytoolException报错求助
解决密钥库签名报错:toDerInputStream rejects tag type -90
以下是针对该问题的实用解决方法,按优先级尝试:
验证密钥库文件完整性
先备份原密钥库文件,然后用keytool命令检查文件是否能正常读取:keytool -list -v -keystore D:\Path_TO_keystore\file.jks输入密钥库密码后,若能正常列出密钥的详细信息,说明文件本身没问题;若仍报错,大概率文件已损坏,优先尝试找回备份文件。
区分密钥库密码与密钥别名密码
很多时候是混淆了全局密钥库密码和单个密钥别名的密码,单独验证密钥别名:keytool -list -v -keystore D:\Path_TO_keystore\file.jks -alias key0这里需要输入的是key0这个别名对应的密码,不是密钥库的通用密码,确认两者是否一致或输入正确。
转换密钥库格式
旧版JKS格式可能和新的Android构建工具不兼容,尝试转换为PKCS12格式后再使用:keytool -importkeystore -srckeystore D:\Path_TO_keystore\file.jks -destkeystore new_keystore.p12 -deststoretype PKCS12生成的PKCS12文件可直接用于签名;若仍想使用JKS格式,再转换回去:
keytool -importkeystore -srckeystore new_keystore.p12 -srcstoretype PKCS12 -destkeystore restored.jks -deststoretype JKS检查Gradle签名配置
确认build.gradle中的签名配置无错误,注意路径格式和密码正确性:signingConfigs { release { storeFile file("D:/Path_TO_keystore/file.jks") storePassword "你的密钥库密码" keyAlias "key0" keyPassword "你的密钥别名密码" } }路径建议用斜杠
/或双反斜杠\\避免转义问题,同时确保密码没有多余空格或特殊字符。尝试修复损坏的密钥库
若文件确有损坏,用keytool的修复命令尝试恢复:keytool -importkeystore -srckeystore D:\Path_TO_keystore\file.jks -destkeystore repaired.jks -deststoretype JKS -repair
内容的提问来源于stack exchange,提问作者Laxmikant Mahamuni
相关产品推荐
相关产品推荐

