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