Flutter_file_picker: APP CRASHES: requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()

Created on 21 Jun 2019  Â·  4Comments  Â·  Source: miguelpruivo/flutter_file_picker

Error says requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission(), I added <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />, yet I get the same error.

Full stack:

Launching lib/main.dart on Android SDK built for x86 in debug mode...
Built build/app/outputs/apk/debug/app-debug.apk.
D/EGL_emulation(10095): eglMakeCurrent: 0xdea05420: ver 2 0 (tinfo 0xdea03380)
D/EGL_emulation(10095): eglMakeCurrent: 0xdca3a0c0: ver 2 0 (tinfo 0xdcfeb330)
I/FilePicker(10095): [SingleFilePick] File URI:content://com.android.providers.media.documents/document/image%3A91
E/FilePickerUtils(10095): Getting for API 19 or abovecontent://com.android.providers.media.documents/document/image%3A91
E/FilePickerUtils(10095): Document URI
E/FilePickerUtils(10095): Media Document URI
I/FilePickerUtils(10095): Image Media Document URI
D/AndroidRuntime(10095): Shutting down VM
E/AndroidRuntime(10095): FATAL EXCEPTION: main
E/AndroidRuntime(10095): Process: com.my.package, PID: 10095
E/AndroidRuntime(10095): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=38519, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:91 flg=0x1 }} to activity {com.my.package/com.my.package.MainActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=10095, uid=10086 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
E/AndroidRuntime(10095):    at android.app.ActivityThread.deliverResults(ActivityThread.java:4360)
E/AndroidRuntime(10095):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402)
E/AndroidRuntime(10095):    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
E/AndroidRuntime(10095):    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E/AndroidRuntime(10095):    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/AndroidRuntime(10095):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
E/AndroidRuntime(10095):    at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(10095):    at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime(10095):    at android.app.ActivityThread.main(ActivityThread.java:6669)
E/AndroidRuntime(10095):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(10095):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/AndroidRuntime(10095):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
E/AndroidRuntime(10095): Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=10095, uid=10086 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
E/AndroidRuntime(10095):    at android.os.Parcel.createException(Parcel.java:1942)
E/AndroidRuntime(10095):    at android.os.Parcel.readException(Parcel.java:1910)
E/AndroidRuntime(10095):    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
E/AndroidRuntime(10095):    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
E/AndroidRuntime(10095):    at android.content.ContentProviderProxy.query(ContentProviderNative.java:418)
E/AndroidRuntime(10095):    at android.content.ContentResolver.query(ContentResolver.java:802)
E/AndroidRuntime(10095):    at android.content.ContentResolver.query(ContentResolver.java:752)
E/AndroidRuntime(10095):    at android.content.ContentResolver.query(ContentResolver.java:710)
E/AndroidRuntime(10095):    at com.mr.flutter.plugin.filepicker.FileUtils.getDataColumn(FileUtils.java:131)
E/AndroidRuntime(10095):    at com.mr.flutter.plugin.filepicker.FileUtils.getForApi19(FileUtils.java:108)
E/AndroidRuntime(10095):    at com.mr.flutter.plugin.filepicker.FileUtils.getPath(FileUtils.java:33)
E/AndroidRuntime(10095):    at com.mr.flutter.plugin.filepicker.FilePickerPlugin$1.onActivityResult(FilePickerPlugin.java:78)
E/AndroidRuntime(10095):    at io.flutter.app.FlutterPluginRegistry.onActivityResult(FlutterPluginRegistry.java:222)
E/AndroidRuntime(10095):    at io.flutter.app.FlutterActivityDelegate.onActivityResult(FlutterActivityDelegate.java:142)
E/AndroidRuntime(10095):    at io.flutter.app.FlutterActivity.onActivityResult(FlutterActivity.java:142)
E/AndroidRuntime(10095):    at android.app.Activity.dispatchActivityResult(Activity.java:7454)
E/AndroidRuntime(10095):    at android.app.ActivityThread.deliverResults(ActivityThread.java:4353)
E/AndroidRuntime(10095):    ... 11 more
I/Process (10095): Sending signal. PID: 10095 SIG: 9
Lost connection to device.
Exited (sigterm)

Flutter doctor:

[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Linux, locale en_IN)
    • Flutter version 1.5.4-hotfix.2 at /home/arnold/flutter
    • Framework revision 7a4c33425d (8 weeks ago), 2019-04-29 11:05:24 -0700
    • Engine revision 52c7a1e849
    • Dart version 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /home/arnold/Android/Sdk
    • Android NDK location not configured (optional; useful for native profiling
      support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /home/arnold/Android/Sdk
    • ANDROID_SDK_ROOT = /home/arnold/Android/Sdk
    • Java binary at: /home/arnold/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[✓] Android Studio (version 3.3)
    • Android Studio at /home/arnold/android-studio
    • Flutter plugin version 33.4.1
    • Dart plugin version 182.5215
    • Java version OpenJDK Runtime Environment (build
      1.8.0_152-release-1248-b01)

[✓] VS Code (version 1.32.3)
    • VS Code at /usr/share/code
    • Flutter extension version 2.25.1

[✓] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 9 (API
      28) (emulator)

• No issues found!

Most helpful comment

Hi, can you try to use file_picker: 1.3.5 instead and see if it’s working for you?

Thank you.

All 4 comments

Hi, can you try to use file_picker: 1.3.5 instead and see if it’s working for you?

Thank you.

@arnold-parge please let me know if it worked for you because if so, I may have to rollback a commit and add the runtime read external storage permissions again.

Thank you.

Putting specific version file_picker: 1.3.5 works. You may need to rollback.
Thanks @miguelpruivo

Fixed in 1.3.7.

Thank you.

Was this page helpful?
0 / 5 - 0 ratings