Matisse适配android10问题解决

举报
yd_274165828 发表于 2023/08/08 19:18:26 2023/08/08
【摘要】 Matisse适配android10问题解决Matisse 是知乎开源的一个漂亮的 Android 本地图片、视频选择器。其主要功能有:选择包括 JPEG、PNG、GIF 格式的图片和 MPEG、MP4 格式的视频支持自定义主题,包括两个内置的主题不同的图片加载器定义自定义过滤规则在 Activities 和 Fragments 中使用良好但是在适配android10的时候会出现一些问题,表...

Matisse适配android10问题解决

Matisse 是知乎开源的一个漂亮的 Android 本地图片、视频选择器。其主要功能有:

选择包括 JPEG、PNG、GIF 格式的图片和 MPEG、MP4 格式的视频

支持自定义主题,包括两个内置的主题

不同的图片加载器

定义自定义过滤规则

在 Activities 和 Fragments 中使用良好

但是在适配android10的时候会出现一些问题,表现为


java.lang.RuntimeExc...
复制代码
at androidx.loader.content.ModernAsyncTask$3.done(ModernAsyncTask.java:164)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:929)
Caused by: android.database.sqlite.SQLiteException: near "GROUP": syntax error (Sqlite code 1 SQLITE_ERROR): , while compiling: SELECT _id, bucket_id, bucket_display_name, _data, COUNT(*) AS count FROM files WHERE ((is_pending=0) AND (is_trashed=0) AND (volume_name IN ( 'external_primary' ))) AND (((media_type=? OR media_type=?) AND _size>0) GROUP BY (bucket_id)) ORDER BY datetaken DESC, (OS error - 2:No such file or directory)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:184)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:423)
at android.content.ContentResolver.query(ContentResolver.java:955)
at android.content.ContentResolver.query(ContentResolver.java:891)
at androidx.core.content.ContentResolverCompat.query(ContentResolverCompat.java:81)
at androidx.loader.content.CursorLoader.loadInBackground(CursorLoader.java:63)
at com.zhihu.matisse.internal.loader.AlbumLoader.loadInBackground(AlbumLoader.java:97)
at com.zhihu.matisse.internal.loader.AlbumLoader.loadInBackground(AlbumLoader.java:33)
at androidx.loader.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:307)
at androidx.loader.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:60)
at androidx.loader.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:48)
at androidx.loader.content.ModernAsyncTask$2.call(ModernAsyncTask.java:141)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)

新版本已经解决这个问题,但是在和GrowingIO一起使用的时候依然会报错,网上大部分解决方案为降低gradle版本至4.4但是,就新版本功能而言,这种后果是不可预估的尤其是,在第三方框架比较多的时候,所以应当尽量提升第三方版本进行适配,这将旧版本的0.8.1提升至最新的0.9.1并解决适配问题,


arduino
复制代码
com.novoda:bintray-release:0.9.1

便可完美解决问题,并且不用适配. 所以在引用第三方,功能的时候,虽然整体代码引入会很繁琐,但是在解决问题的时候,要大胆修改,有承担后果的决心,并且细心的改进,并且参考网上方案,就能找到最完美的解决方案

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。