NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available

我遇到这个问题时候踩了很多坑

先罗列网上解决方案

1.缺少加密算法所需要的一个jar包:sunjce_provider.jar,在自己曾安装过的jre中找到该包,将其复制到fluuter目录(android/app/libs/sunjce_provider.jar)
这个方案并没有解决我的问题

2.修改一下jdk版本。16、18都可以。
这个方案似乎也没有解决我的问题

我的解决方案,其实是签名生成的文件类型问题

1.需要是jks 文件,不能使用 .keystore
2.文件不能使用 PKCS12,否则报错

release
keytool -genkey -v -keystore release.jks -keyalg RSA -alias xxrelease -storetype jks -keysize 2048 -validity 10000

debug
keytool -genkey -v -keystore debug.jks -keyalg RSA -alias xxdebug -storetype jks -keysize 2048 -validity 10000

另外记录下命令参数说明

1)keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来,显示在dos窗口中;

2)-keystore release.jks 表示生成的数字证书的文件名为“release.jks”;

3)-alias xxrelease 表示证书的别名为“xxrelease”,当然可以不和上面的文件名一样;

4)-keyalg RSA 表示生成密钥文件所采用的算法为RSA;

5)-validity 10000 表示该数字证书的有效期为10000天,意味着10000天之后该证书将失效

6)-storetype jks 签名文件类型

猜你喜欢

转载自blog.csdn.net/weixin_43209251/article/details/126072039