React Native Release版本打包签名失败问题求助
解决Android Release构建时HmacPBESHA256算法不可用的问题
问题原因
该错误是由于你的JDK版本不支持HmacPBESHA256算法导致的。高版本Gradle(如你使用的7.3.3)在签名流程中会用到该算法,但旧版JDK(比如早期JDK 8)未提供对应支持,而Debug构建的签名逻辑和Release不同,所以不会触发这个问题。
解决方案
升级JDK版本
直接升级到JDK 11或更高版本,确保JDK包含该算法支持:- 在Android Studio中打开项目,进入
File > Project Structure > SDK Location - 在
JDK location选择已安装的JDK 11+路径 - 或者在项目根目录的
gradle.properties中添加配置:org.gradle.java.home=/path/to/your/jdk11+
- 在Android Studio中打开项目,进入
修改签名配置兼容旧JDK
若暂时无法升级JDK,可修改签名配置禁用V2签名(改用兼容旧JDK的V1签名):
在android/app/build.gradle的signingConfigs块中添加配置:signingConfigs { release { storeFile file("my-upload-key.keystore") storePassword "你的密钥库密码" keyAlias "my-key" keyPassword "你的密钥密码" v2SigningEnabled false } }注意:禁用V2签名会降低APK安全性,建议优先选择升级JDK。
验证密钥库完整性
使用keytool命令检查密钥库是否损坏:keytool -list -v -keystore /Users/ad8kunle/Documents/react-native-projects/mvmarket/android/app/my-upload-key.keystore若命令执行失败,说明密钥库已损坏,需用备份文件替换。
清理并重新构建
修改配置后执行以下命令重新构建:./gradlew clean npx react-native run-android --variant=release --no-jetifier
内容的提问来源于stack exchange,提问作者kunle
相关产品推荐
相关产品推荐

