question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

App crashes with exception java.io.FileNotFoundException: open failed: ENOENT

See original GitHub issue

When the image is passed to the plugin it crashes the application. If there is a FileNotFoundException then the plugin should throw an Exception to flutter.

Here are the Logs

I/flutter ( 7398): APPLOGS : saveFileToLocal /data/user/0/com.package.name/cache/image_cropper_1583319540032.jpg
W/MediaStore( 7398): Failed to obtain thumbnail for content://media/external/images/media/1757
W/MediaStore( 7398): java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
W/MediaStore( 7398): 	at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:149)
W/MediaStore( 7398): 	at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:705)
W/MediaStore( 7398): 	at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1694)
W/MediaStore( 7398): 	at android.content.ContentResolver.openTypedAssetFile(ContentResolver.java:1599)
W/MediaStore( 7398): 	at android.content.ContentResolver.lambda$loadThumbnail$0(ContentResolver.java:3623)
W/MediaStore( 7398): 	at android.content.-$$Lambda$ContentResolver$7ILY1SWNxC2xhk-fQUG6tAXW9Ik.call(Unknown Source:10)
W/MediaStore( 7398): 	at android.graphics.ImageDecoder$CallableSource.createImageDecoder(ImageDecoder.java:550)
W/MediaStore( 7398): 	at android.graphics.ImageDecoder.decodeBitmapImpl(ImageDecoder.java:1847)
W/MediaStore( 7398): 	at android.graphics.ImageDecoder.decodeBitmap(ImageDecoder.java:1840)
W/MediaStore( 7398): 	at android.content.ContentResolver.loadThumbnail(ContentResolver.java:3622)
W/MediaStore( 7398): 	at android.content.ContentResolver.loadThumbnail(ContentResolver.java:3606)
W/MediaStore( 7398): 	at android.provider.MediaStore$InternalThumbnails.getThumbnail(MediaStore.java:1579)
W/MediaStore( 7398): 	at android.provider.MediaStore$Images$Thumbnails.getThumbnail(MediaStore.java:1938)
W/MediaStore( 7398): 	at carnegietechnologies.gallery_saver.FileUtils.insertImage(FileUtils.kt:80)
W/MediaStore( 7398): 	at carnegietechnologies.gallery_saver.GallerySaver$saveMediaFile$1$success$1.invokeSuspend(GallerySaver.kt:69)
W/MediaStore( 7398): 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
W/MediaStore( 7398): 	at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:238)
W/MediaStore( 7398): 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
W/MediaStore( 7398): 	at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
W/MediaStore( 7398): 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742)
E/AndroidRuntime( 7398): FATAL EXCEPTION: main
E/AndroidRuntime( 7398): Process: com.package.name, PID: 7398
E/AndroidRuntime( 7398): java.lang.IllegalStateException: miniThumb must not be null
E/AndroidRuntime( 7398): 	at carnegietechnologies.gallery_saver.FileUtils.insertImage(FileUtils.kt:83)
E/AndroidRuntime( 7398): 	at carnegietechnologies.gallery_saver.GallerySaver$saveMediaFile$1$success$1.invokeSuspend(GallerySaver.kt:69)
E/AndroidRuntime( 7398): 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/AndroidRuntime( 7398): 	at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:238)
E/AndroidRuntime( 7398): 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
E/AndroidRuntime( 7398): 	at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
E/AndroidRuntime( 7398): 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742)
I/System.out( 7398): (HTTPLog)-Static: isSBSettingEnabled false
I/System.out( 7398): (HTTPLog)-Static: isSBSettingEnabled false
I/Process ( 7398): Sending signal. PID: 7398 SIG: 9

Here the save function

  static Future<Null> saveFileToLocal(File file) async {
    appLogs("saveFileToLocal ${file.path}");

    try {
      //Save file local storage as well.
      final result = await GallerySaver.saveImage(
        file.path,
        albumName:"App Name",
      );
      appLogs("saveFileToLocal result $result");
    } catch (e, s) {
      appLogs("  saveFileToLocal ERROR $e\n$s");
    }

    return null;
  }

device info SAMSUNG G973F • RZ8M309W8JJ • android-arm64 • Android 10 (API 29)

flutter doctor

[✓] Flutter (Channel beta, v1.14.6, on Mac OS X 10.15.3 19D76, locale en-GB)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.5)
[!] VS Code (version 1.42.1)
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (3 available)

! Doctor found issues in 1 category.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:13
  • Comments:12 (1 by maintainers)

github_iconTop GitHub Comments

2reactions
derrickstampedecommented, Nov 19, 2020

Has anyone found a solution?

1reaction
cookmscottcommented, Jul 17, 2020

I think this is due to targeting Android 10 (API Level 29) which has a new downloads structure

Downloaded files, which are stored in the Download/ directory. On devices that run Android 10 (API level 29) and higher, these files are stored in the MediaStore.Downloads table. This table isn’t available on Android 9 (API level 28) and lower.

Read more comments on GitHub >

github_iconTop Results From Across the Web

android - java.io.FileNotFoundException: /storage/emulated/0 ...
So first fix any mistakes such as assuming what the path will be on a given device, or program logic errors that cause...
Read more >
No DRP key due to exception:java.lang ... - Issue Tracker
ServiceThread.run(ServiceThread.java:46) Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) at libcore.io.
Read more >
FileNotFoundException intermittently occurs on the Android ...
When calling track() of the amplitude SDK, the app crashes with a FileNotFoundException error.It's a very occasional error, but I don't know ...
Read more >
File Not Found Error on Update - open failed: ENOENT - GitLab
Same updating Firefox Nightly. Aurora Store v4.0.2.33, android 10. java.io.FileNotFoundException: open failed: ENOENT (No such file or directory) ...
Read more >
1.png: open failed: ENOENT (No such file or directory) - B4X
RuntimeException : java.io.FileNotFoundException: /storage/emulated/0/Android/data/takziv.financhick.com/files/virtual_assets/1.png: open ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found