Android-Universal-Image-Loader icon indicating copy to clipboard operation
Android-Universal-Image-Loader copied to clipboard

Unable to show image from when selected from gallery

Open HardikSuba opened this issue 9 years ago • 4 comments

Device: MotoG Android Lollipop 5.0.2 I'm using this code.

ImageLoader.getInstance().displayImage(ImageDownloader.Scheme.FILE.wrap(uri.toString()), iv, options);

It will show images from the camera URI: file:///storage/emulated/0/Pictures/PhotoJoiner-TempFiles/IMG_20150529_202814.jpg But not from Gallery URI: content://media/external/images/media/121516

However if I use this code, ImageLoader.getInstance().displayImage(uri.toString(), iv, options);' Then it will load images from Gallery and Camera but not from Aviary Aviary Uri:/storage/emulated/0/Pictures/PhotoJoiner-TempFiles/IMG_20150529_202903.jpg

This is the Log of first case LOG:

Start display image task [file://content://media/external/images/media/121516_300x300]
ImageLoader﹕ Load image from network [file://content://media/external/images/media/121516_300x300]
ImageLoader﹕ Cache image on disk [file://content://media/external/images/media/121516_300x300]

Exception:

 E/ImageLoader﹕ content:/media/external/images/media/121516: open failed: ENOENT (No such file or directory)
    java.io.FileNotFoundException: content:/media/external/images/media/121516: open failed: ENOENT (No such file or directory)
            at libcore.io.IoBridge.open(IoBridge.java:456)
            at java.io.FileInputStream.<init>(FileInputStream.java:76)
            at java.io.FileInputStream.<init>(FileInputStream.java:103)
            at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromFile(BaseImageDownloader.java:180)
            at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:90)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(LoadAndDisplayImageTask.java:291)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDisk(LoadAndDisplayImageTask.java:274)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:230)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:136)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:818)
     Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
            at libcore.io.Posix.open(Native Method)
            at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
            at libcore.io.IoBridge.open(IoBridge.java:442)
            at java.io.FileInputStream.<init>(FileInputStream.java:76)
            at java.io.FileInputStream.<init>(FileInputStream.java:103)
            at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromFile(BaseImageDownloader.java:180)
            at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:90)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(LoadAndDisplayImageTask.java:291)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDisk(LoadAndDisplayImageTask.java:274)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:230)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:136)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:818)
05-29 21:19:09.278     764-3605/com.photojoinerapp E/ImageLoader﹕ content:/media/external/images/media/121516: open failed: ENOENT (No such file or directory)
    java.io.FileNotFoundException: content:/media/external/images/media/121516: open failed: ENOENT (No such file or directory)
            at libcore.io.IoBridge.open(IoBridge.java:456)
            at java.io.FileInputStream.<init>(FileInputStream.java:76)
            at java.io.FileInputStream.<init>(FileInputStream.java:103)
            at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromFile(BaseImageDownloader.java:180)
            at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:90)
            at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.getImageStream(BaseImageDecoder.java:98)
            at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(BaseImageDecoder.java:74)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:265)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:238)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:136)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:818)
     Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
            at libcore.io.Posix.open(Native Method)
            at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
            at libcore.io.IoBridge.open(IoBridge.java:442)
            at java.io.FileInputStream.<init>(FileInputStream.java:76)
            at java.io.FileInputStream.<init>(FileInputStream.java:103)
            at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromFile(BaseImageDownloader.java:180)
            at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:90)
            at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.getImageStream(BaseImageDecoder.java:98)
            at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(BaseImageDecoder.java:74)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:265)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:238)
            at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:136)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:818)

HardikSuba avatar May 29 '15 16:05 HardikSuba

You should NOT wrap "content://..." URIs with FILE prefix.

nostra13 avatar Jun 07 '15 09:06 nostra13

Okay. So what is the code which works with all three URIs?

HardikSuba avatar Jun 10 '15 06:06 HardikSuba

Bump!

alexblack avatar Oct 11 '15 17:10 alexblack

I can reproduce what looks like the same issue on an LG Nexus 5 running Android 4.4.4. It happens when I choose "Downloads" to pick an image. See attached.

Stack trace:

java.lang.Exception: Failed to copy logo from content://media/external/images/media/3611, failType: IO_ERROR, mimeType: image/png
       at com.aadhk.woinvoice.util.LogoUtils$3.onLoadingFailed(ProGuard:152)
       at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask$2.run(ProGuard:350)
       at android.os.Handler.handleCallback(Handler.java:615)
       at android.os.Handler.dispatchMessage(Handler.java:92)
       at android.os.Looper.loop(Looper.java:137)
       at android.app.ActivityThread.main(ActivityThread.java:4895)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:511)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
       at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: java.io.FileNotFoundException: No such file or directory
       at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:149)
       at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:617)
       at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:715)
       at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:612)
       at android.content.ContentResolver.openInputStream(ContentResolver.java:447)
       at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromContent(ProGuard:190)
       at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(ProGuard:90)
       at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.getImageStream(ProGuard:93)
       at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(ProGuard:73)
       at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(ProGuard:264)
       at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(ProGuard:237)
       at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(ProGuard:135)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
       at java.lang.Thread.run(Thread.java:856)

screenshot 2015-10-11 11 19 15

alexblack avatar Oct 11 '15 18:10 alexblack