Android-Universal-Image-Loader
Android-Universal-Image-Loader copied to clipboard
Image can't be decoded-> .imageDecoder issue
I get the error E/ImageLoader﹕ Image can't be decoded
. I found a solution here https://github.com/nostra13/Android-Universal-Image-Loader/issues/539. One guy says to copy a class NutraBaseImageDecoder
andd add .imageDecoder(new NutraBaseImageDecoder(true))
to the options, but when I try to add this it doesn't recognize the .imageDecoder
. What am I doing wrong ?
This is what I've tried:
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_empty)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error)
.cacheInMemory(true)
.cacheOnDisk(true)
.imageDecoder(new NutraBaseImageDecoder(true))
.considerExifParams(true)
.displayer(new RoundedBitmapDisplayer(20)).build();
The problem is with .imageDecoder(new NutraBaseImageDecoder(true))
. There are no spaces in the url. I also have this in Uri.decode(url)
when I'm passing it in the image loader.
Edit with errors :
06-01 14:12:14.746 13047-14716/name.company.newproject I/System.out﹕ AsyncTask #3 calls detatch()
06-01 14:12:14.766 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:14.766 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:14.766 13047-13454/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:14.826 13047-13455/name.company.newproject D/dalvikvm﹕ GC_FOR_ALLOC freed 3151K, 17% free 21796K/26124K, paused 22ms, total 22ms
06-01 14:12:14.836 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:14.836 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:14.836 13047-13455/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:14.856 13047-13452/name.company.newproject D/dalvikvm﹕ GC_FOR_ALLOC freed 716K, 17% free 21817K/26124K, paused 24ms, total 24ms
06-01 14:12:14.926 13047-13452/name.company.newproject D/dalvikvm﹕ GC_FOR_ALLOC freed 62K, 15% free 22330K/26124K, paused 24ms, total 24ms
06-01 14:12:14.946 13047-13047/name.company.newproject D/AbsListView﹕ unregisterIRListener() is called
06-01 14:12:15.446 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.446 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.446 13047-13454/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:15.456 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.456 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.456 13047-13452/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:15.506 13047-13047/name.company.newproject D/AbsListView﹕ unregisterIRListener() is called
06-01 14:12:15.576 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.576 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.576 13047-13455/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:15.576 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.576 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.576 13047-13454/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:15.616 13047-13047/name.company.newproject D/AbsListView﹕ unregisterIRListener() is called
06-01 14:12:15.666 13047-13047/name.company.newproject D/AbsListView﹕ unregisterIRListener() is called
06-01 14:12:15.896 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.896 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.896 13047-13452/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:15.896 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.896 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:15.896 13047-13455/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:16.096 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.096 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.096 13047-13454/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:16.096 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.096 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.096 13047-13452/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:16.656 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.656 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.656 13047-13455/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:16.656 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.656 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.656 13047-13454/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:16.846 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.846 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.846 13047-13452/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:16.856 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.856 13047-13455/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:16.856 13047-13455/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:17.056 13047-13455/name.company.newproject D/dalvikvm﹕ GC_FOR_ALLOC freed 4815K, 21% free 23079K/29068K, paused 22ms, total 22ms
06-01 14:12:17.316 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:17.316 13047-13454/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:17.316 13047-13454/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:17.316 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:17.316 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:17.316 13047-13452/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
06-01 14:12:18.116 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:18.116 13047-13452/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
06-01 14:12:18.116 13047-13452/name.company.newproject E/ImageLoader﹕ Image can't be decoded [httpURL]
The image is 2.6 MB.
ImageDecoder is set in configuration, not DisplayImageOptions
.
https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Configuration
Thank you for answering. Is this the part that you are talking about ? https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/sample/src/main/java/com/nostra13/universalimageloader/sample/UILApplication.java . I couldn't find anything else. Should I just copy this java file in my project ?
You must init ImageLoader before the first usage:
...
ImageLoader.getInstance().init(config.build());
You can put it in your first Activity.onCreate()
.
I had that:
// UNIVERSAL IMAGE LOADER SETUP
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheOnDisc(true).cacheInMemory(true)
.imageScaleType(ImageScaleType.EXACTLY)
.displayer(new FadeInBitmapDisplayer(300)).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.memoryCache(new WeakMemoryCache())
.discCacheSize(100 * 1024 * 1024).build();
ImageLoader.getInstance().init(config);
// END - UNIVERSAL IMAGE LOADER SETUP
So? Can't you add .imageDecoder(new NutraBaseImageDecoder(true))
to config?
I'm sorry. Now I understood what you said. I'll add it. Thank you.
Tried it and it's not working. I still get 06-07 22:40:41.995 5489-5899/name.company.newproject D/dalvikvm﹕ GC_FOR_ALLOC freed 2120K, 27% free 25018K/34180K, paused 15ms, total 16ms 06-07 22:40:41.995 5489-5899/name.company.newproject D/skia﹕ --- SkImageDecoder::Factory returned null
Have the same error. Tried all previous solutions, but they not helped me. My config
File cacheDir = FileManager.getImageCacheDirectory(getApplicationContext());
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.imageScaleType(ImageScaleType.EXACTLY)
.resetViewBeforeLoading(true)
.cacheOnDisk(true)
.cacheInMemory(true)
.showImageOnLoading(R.drawable.ic_no_image)
.showImageForEmptyUri(R.drawable.ic_no_image)
.showImageOnFail(R.drawable.ic_no_image)
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.denyCacheImageMultipleSizesInMemory()
.diskCache(new UnlimitedDiskCache(cacheDir))
.imageDownloader(new MyImageDownloader(this))
.defaultDisplayImageOptions(defaultOptions)
.build();
ImageLoader.getInstance().init(config);
MyImageDownloader just overrid getStreamFromOtherSource for supporting schemas.
@Override
protected InputStream getStreamFromOtherSource(String imageUri, Object extra) throws IOException {
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), mSchemas.get(imageUri));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 0, bos);
byte[] bitmapData = bos.toByteArray();
ByteArrayInputStream bs = new ByteArrayInputStream(bitmapData);
return bs;
}
Loggs
E/ImageLoader﹕ Image can't be decoded [https://s3.amazonaws.com/yyy_54x54]
07-21 11:00:37.887 30600-31689/com.yyy.xxx D/skia﹕ --- SkImageDecoder::Factory returned null
07-21 11:00:37.889 30600-31689/com.yyy.xxx D/skia﹕ --- SkImageDecoder::Factory returned null
How can I solve this problem? Use UIL 1.9.4 Thank you.
@nostra13 I find the problem when I decode a jpeg2000 picture,not all devices,if a normal jpg picture,the UIL works well.I think this is a possible reason.
@Haoxiqiang you are right, not all devices have this problem ,i find some old devices with in this problem. if picture is too big ,then this error is happened.