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

Image can't be decoded-> .imageDecoder issue

Open bogdantudorascu opened this issue 9 years ago • 10 comments

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.

bogdantudorascu avatar Jun 01 '15 15:06 bogdantudorascu

ImageDecoder is set in configuration, not DisplayImageOptions. https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Configuration

nostra13 avatar Jun 07 '15 09:06 nostra13

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 ?

bogdantudorascu avatar Jun 07 '15 15:06 bogdantudorascu

You must init ImageLoader before the first usage:

...
ImageLoader.getInstance().init(config.build());

You can put it in your first Activity.onCreate().

nostra13 avatar Jun 07 '15 16:06 nostra13

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

bogdantudorascu avatar Jun 07 '15 18:06 bogdantudorascu

So? Can't you add .imageDecoder(new NutraBaseImageDecoder(true)) to config?

nostra13 avatar Jun 07 '15 18:06 nostra13

I'm sorry. Now I understood what you said. I'll add it. Thank you.

bogdantudorascu avatar Jun 07 '15 18:06 bogdantudorascu

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

bogdantudorascu avatar Jun 07 '15 22:06 bogdantudorascu

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.

ghost avatar Jul 21 '15 08:07 ghost

@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 avatar Aug 03 '15 01:08 Haoxiqiang

@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.

keithxiaoy avatar Feb 07 '18 02:02 keithxiaoy