我遇到这个问题时候踩了很多坑
先罗列网上解决方案
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天之后该证书将失效文章来源:https://www.toymoban.com/news/detail-486488.html
6)-storetype jks 签名文件类型文章来源地址https://www.toymoban.com/news/detail-486488.html
到了这里,关于NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!