我遇到这个问题时候踩了很多坑
先罗列网上解决方案
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 签名文件类型