7.0系统兼容补遗之---NoSuchProviderException: no such provider: Crypto

在 兼容Android 6.0,您需要做的几件事儿!文章里面我总结了android M 及其以上会遇到的问题。这一篇就补充记录一个遗漏的问题,既安卓提供的加解密方式在7.0上的兼容问题。

在N系统上,当敲下这句话

SecureRandom sr = SecureRandom.getInstance("SHA1PRNG","Crypto");

且运行时,

系统会抛出这样一个异常:java.security.NoSuchProviderException: no such provider: Crypto

事实上,CryptoProvider已经在N上不能用来生成一个随机Key.

解决方法就是 我们自己实现一个CryptoProvider,这是第一步~


更加详细完整的可以点击这个链接 CryptoProvider.java

第二步,修改之前的代码写法


7.0系统兼容补遗之---NoSuchProviderException: no such provider: Crypto_第1张图片

至此,这个问题得到解决~

注:写作此篇时候,参考了以下文章:

1.stackoverflow.com/questions/39097099/security-crypto-provider-deprecated-in-android-n/42337802#42337802

2.my.oschina.net/yaly/blog/856362

后记:  接下来一篇应该会写下 M系统上另外一个比较重要且常见的问题,既 FileUriExposedException。 关于安装M以及后续出来的O系统,我会持续更新和补充,谢谢各位读者同行~

你可能感兴趣的:(7.0系统兼容补遗之---NoSuchProviderException: no such provider: Crypto)