You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter构建APK失败,报错HmacPBESHA256算法不存在如何解决?

问题根因

本次打包失败的核心原因是签名密钥文件(jks)使用的加密算法与当前Android打包环境的JDK版本不兼容:高版本JDK生成jks文件时默认采用的HmacPBESHA256算法,在低于JDK 11的运行环境中不存在,导致签名校验失败。开头的path_provider相关提示属于编译警告,和本次打包失败无关。

解决方案

可根据自身情况选择以下任意一种方案解决:

  • 方案1:生成新的兼容格式签名密钥
    如果可以更换签名密钥,执行keytool命令时指定兼容算法参数即可,完整命令参考:
keytool -genkey -v -keystore upload_signing.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload -sigalg SHA1withRSA

按照提示完成密钥生成后,替换项目中原有的jks文件即可。

  • 方案2:转换现有密钥为兼容格式
    如果不想更换已有签名密钥,可直接执行命令转换现有jks文件:
keytool -importkeystore -srckeystore upload_signing.jks -destkeystore upload_signing_compat.jks -deststoretype jks

按照提示输入原有密钥密码完成转换后,将项目中引用的签名文件替换为新生成的upload_signing_compat.jks即可。

  • 方案3:统一打包JDK版本
    将项目的Gradle运行JDK版本升级到11及以上,和生成jks时使用的JDK版本保持一致:打开Android Studio的设置页面,进入Build, Execution, Deployment > Build Tools > Gradle,在Gradle JDK选项中选择11及以上版本,同步项目后重新打包即可。
验证操作

修改完成后可依次执行以下命令重新打包:

flutter clean
flutter build apk --release

内容的提问来源于stack exchange,提问作者Joel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:36:03