Glide fails to load resources when trying to load an image from a URL

2

i use glide to load image into Drawable object. When i try to load local image, it works fine. But, i switch to image from url, it won't work and i get this error message :

W/Glide: Load failed for https://www.dropbox.com/s/nx8ufy3jxc9urgv/ic_reward_3rb.png with size [-2147483648x-2147483648]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource
      Cause (1 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{DirectByteBuffer->Object->Drawable}, DATA_DISK_CACHE, https://www.dropbox.com/s/nx8ufy3jxc9urgv/ic_reward_3rb.png
        Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->GifDrawable->Drawable}
        Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->Bitmap->Drawable}
        Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->BitmapDrawable->Drawable}
      Cause (2 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream->Object->Drawable}, DATA_DISK_CACHE, https://www.dropbox.com/s/nx8ufy3jxc9urgv/ic_reward_3rb.png
        Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->GifDrawable->Drawable}
        Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->Bitmap->Drawable}
        Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->BitmapDrawable->Drawable}
      Cause (3 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor->Object->Drawable}, DATA_DISK_CACHE, https://www.dropbox.com/s/nx8ufy3jxc9urgv/ic_reward_3rb.png
        Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->Bitmap->Drawable}
          Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
        Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->BitmapDrawable->Drawable}
          Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
      Cause (4 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{DirectByteBuffer->Object->Drawable}, REMOTE, https://www.dropbox.com/s/nx8ufy3jxc9urgv/ic_reward_3rb.png
        Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->GifDrawable->Drawable}
        Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->Bitmap->Drawable}
        Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->BitmapDrawable->Drawable}
      Cause (5 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream->Object->Drawable}, REMOTE, https://www.dropbox.com/s/nx8ufy3jxc9urgv/ic_reward_3rb.png
        Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->GifDrawable->Drawable}
        Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->Bitmap->Drawable}
        Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->BitmapDrawable->Drawable}
      Cause (6 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor->Object->Drawable}, REMOTE, https://www.dropbox.com/s/nx8ufy3jxc9urgv/ic_reward_3rb.png
        Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->Bitmap->Drawable}
          Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
        Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->BitmapDrawable->Drawable}
          Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000

And here is my error stack trace :

 Caused by: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
    at android.media.MediaMetadataRetriever.setDataSource(Native Method)
    at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:144)
    at com.bumptech.glide.load.resource.bitmap.VideoBitmapDecoder.decode(VideoBitmapDecoder.java:128)
    at com.bumptech.glide.load.resource.bitmap.VideoBitmapDecoder.decode(VideoBitmapDecoder.java:25) 
    ..... .... ...
    at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:72) 
    at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:71) 
    at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:303) 
    at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:270) 
    at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234) 
    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) 
    at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:445) 

Above is my error trace, i debug it in callback. Here is my implementation :

Glide.with(context)
    .load("https://www.dropbox.com/s/nx8ufy3jxc9urgv/ic_reward_3rb.png")
    .into(object : SimpleTarget<Drawable>() {
        override fun onResourceReady(downloadedResource: Drawable, transition: Transition<in Drawable>) {
            Log.e("GameRejeki", "Resource is Ready...")
            downloadedResource.setBounds(
                    leftSize + leftSize / 2 - rewardIconWidth / 3,
                    topSize,
                    widthSize + leftSize / 2 - rewardIconWidth / 3,
                    heightSize
            )

            canvas.save()
            canvas.rotate(value, leftSize.toFloat(), leftSize.toFloat())
            downloadedResource.draw(canvas)
            canvas.restore()
        }
    })
android
kotlin
android-glide
asked on Stack Overflow Apr 19, 2018 by fanjavaid • edited Mar 24, 2019 by Zoe

3 Answers

0

In my case, this error was getting triggered because I was trying to update the UI inside the Glide callback, outside the main Activity thread.

It was not apparent at the top of the stack trace, and I had to scrutinize logcat a bit to realize this was the problem.

After wrapping all UI update calls - that were inside the Glide callback methods - with .runOnUiThread(..), the exception went away.

answered on Stack Overflow Jun 25, 2019 by Gene Bo
0

I know its a late replay, may be helpful for anyone else.

Since your link is from HTTPS I think you need to have an SSL verifier to accept data from https link. kindly check the belove link

accepting HTTPS connections with self-signed certificates

answered on Stack Overflow Jun 25, 2019 by ASHMIL HUSSAIN K
-2

Check if you added internet permission in AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

Update :

Actual image url from dropbox is :

https://photos-1.dropbox.com/t/2/AACkTffiGl7ApXhQS7i_wAs-VlEdi2hukrOrjBaj5fZe2A/12/117339454/png/32x32/3/1524150000/0/2/ic_reward_3rb.png/EN2_w1oYmYoDIAIoAg/4m_AZbPL_PKPAjLx4EdcJeRWU8hrrlf-SXDFk-mhlYQ?dl=0&preserve_transparency=1&size=2048x1536&size_mode=3

I was able to load successfully using this url.

So I guess dropbox is redirecting to webpage if you are using the previous url.

answered on Stack Overflow Apr 19, 2018 by Nilesh Deokar • edited Apr 19, 2018 by Nilesh Deokar

User contributions licensed under CC BY-SA 3.0