2018年开始使用知乎的图片库Matisse 0.5.2 bate4版本,出现了Android10手机崩溃的情况,Android9上并无此现象,安装腾讯bugly发现问题
Caused by java.lang.IllegalArgumentException: Invalid column COUNT(*) AS count
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:170)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
at android.content.ContentProviderProxy.query(ContentProviderProxy.java:423)
at android.content.ContentResolver.query(ContentResolver.java:963)
at android.content.ContentResolver.query(ContentResolver.java:898)
嗯是Android10存储变更造成的
更新至Matisse 0.5.3 bate3版本图库崩溃问题解决了,但出现了Android10拍照无返回的情况。
我看了看源码,发现拍照这块没对10进行区分,都按照FileProvider进行处理。
于是我的解决方案是将拍照和图片库解耦,图片库继续使用Matisse 0.5.3 bate3,拍照自己写。
但这事没完,Matisse 0.5.3 bate4迟迟没有动静我开始调研新的图片库了。
为啥不自己写一个?以来人手不多,自己造轮子测试量也没那么大,不如现成的安全。
选择标准:稳定维护,看看最近一次提交是Android10发布之后的时间到最近。star量不能低于500,选出了20来个进行测评,结果发现很多都不维护了,体验到开发周期的毒打。
直接说结果:
最后测试过了两个图片库:HuanTanSheng/EasyPhotos和 LuckSiege/PictureSelector
而因为使用了扫码库而最先考虑的BGAPhotoPicker-Android在适配Android9就失败了
看到有人说需要在
Manifest中的application属性里面设置android:requestLegacyExternalStorage=“true”
我想了想11也快发布了,这种过渡性设置,过几个月还要换回去,还需要递增版本号就挺苦的,算了吧。