Android-Universal-Image-Loader
                                
                                 Android-Universal-Image-Loader copied to clipboard
                                
                                    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.