生成签名应用时遇“Given final block not properly padded”报错求助
解决Android Studio 2023.1.1签名JKS文件异常问题
检查JDK版本兼容性
Android Studio 2023.1.1默认搭载Embedded JDK 17,而2022.2.1 Patch 2通常使用JDK 11。高版本JDK对JKS密钥库的算法支持可能存在差异,导致读取失败。
操作步骤:打开File > Project Structure > SDK Location,将JDK Location切换为和正常机器一致的版本(比如JDK 11),或尝试使用Oracle JDK替代嵌入式JDK。转换密钥库格式为PKCS12
JKS是较旧的密钥库格式,PKCS12在新版本JDK中兼容性更好。通过keytool转换格式:keytool -importkeystore -srckeystore your_old.jks -destkeystore new_keystore.p12 -deststoretype PKCS12转换完成后,在AS中使用新生成的PKCS12文件进行签名测试。
清除Android Studio缓存与索引
新版本AS的缓存可能出现异常,干扰签名流程。执行File > Invalidate Caches...,选择Invalidate and Restart,重启后重试签名操作。核对签名配置细节
再次确认build.gradle中的签名配置参数,确保storePassword、keyPassword、keyAlias无拼写错误(即使你确认密码正确,也可能存在别名输入失误)。示例配置:signingConfigs { release { storeFile file("your.jks") storePassword "your_password" keyAlias "your_key_alias" keyPassword "your_password" } }尝试手动签名APK
绕开AS的签名流程,用命令行手动签名验证问题:- 生成未签名APK:
Build > Build Bundle(s) / APK(s) > Build APK(s) - 执行签名命令:
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore your.jks app-release-unsigned.apk your_key_alias
如果手动签名成功,说明问题出在AS本身;若仍失败,需进一步检查JKS文件是否存在隐性损坏(可尝试从正常机器重新拷贝一份干净的JKS)。
- 生成未签名APK:
内容的提问来源于stack exchange,提问作者Alex B.
相关产品推荐
相关产品推荐

