aloisdeniel / media_gallery

A Flutter plugin that lists native gallery items.
MIT License
87 stars 33 forks source link

Android 10 Cannot get media list #9

Open ufznr37 opened 4 years ago

ufznr37 commented 4 years ago

If I change compileSdkVersion from 28 to 29 I get error.

E/AndroidRuntime( 8061): java.lang.RuntimeException: An error occurred while executing doInBackground() E/AndroidRuntime( 8061): at android.os.AsyncTask$AsyncFutureTask.done(AsyncTask.java:429) E/AndroidRuntime( 8061): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383) E/AndroidRuntime( 8061): at java.util.concurrent.FutureTask.setException(FutureTask.java:252) E/AndroidRuntime( 8061): at java.util.concurrent.FutureTask.run(FutureTask.java:271) E/AndroidRuntime( 8061): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:292) E/AndroidRuntime( 8061): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) E/AndroidRuntime( 8061): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) E/AndroidRuntime( 8061): at java.lang.Thread.run(Thread.java:929) E/AndroidRuntime( 8061): Caused by: java.lang.IllegalArgumentException: Invalid column count(*) AS count E/AndroidRuntime( 8061): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:170) E/AndroidRuntime( 8061): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140) E/AndroidRuntime( 8061): at android.content.ContentProviderProxy.query(ContentProviderNative.java:423) E/AndroidRuntime( 8061): at android.content.ContentResolver.query(ContentResolver.java:955) E/AndroidRuntime( 8061): at android.content.ContentResolver.query(ContentResolver.java:891) E/AndroidRuntime( 8061): at android.content.ContentResolver.query(ContentResolver.java:840) E/AndroidRuntime( 8061): at com.example.media_gallery.MediaGalleryPlugin.listImages(MediaGalleryPlugin.kt:233) E/AndroidRuntime( 8061): at com.example.media_gallery.MediaGalleryPlugin.access$listImages(MediaGalleryPlugin.kt:18) E/AndroidRuntime( 8061): at com.example.media_gallery.MediaGalleryPlugin$onMethodCall$3.invoke(MediaGalleryPlugin.kt:66) E/AndroidRuntime( 8061): at com.example.media_gallery.MediaGalleryPlugin$onMethodCall$3.invoke(MediaGalleryPlugin.kt:18) E/AndroidRuntime( 8061): at com.example.media_gallery.doAsync.doInBackground(MediaGalleryPlugin.kt:531) E/AndroidRuntime( 8061): at com.example.media_gallery.doAsync.doInBackground(MediaGalleryPlugin.kt:525) E/AndroidRuntime( 8061): at android.os.AsyncTask$3.call(AsyncTask.java:389) E/AndroidRuntime( 8061): at java.util.concurrent.FutureTask.run(FutureTask.java:266) E/AndroidRuntime( 8061): ... 4 more

than I try to solve. file: MediaGalleryPlugin.kt method: listImages

from

val imageCountCursor = context.contentResolver.query(
                  MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                  arrayOf("count(*) AS counta"), // <-- this line
                  if (collectionId == "__ALL__") null else "bucket_id = $collectionId",
                  null,
                  null)

to

val imageCountCursor = context.contentResolver.query(
                  MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                  arrayOf(MediaStore.Images.Media._ID), // <-- this line
                  if (collectionId == "__ALL__") null else "bucket_id = $collectionId",
                  null,
                  null)

it work. Can you check for Android 10?

AdrianSima commented 3 years ago

This has been fixed in https://github.com/aloisdeniel/media_gallery/commit/c8a7ee9873dd7422305f5f88b0c035596311af5d that is available in the latest version: media_gallery: 0.1.5