首页 > 解决方案 > 滑动图像加载神秘地失败

问题描述

Glide在我的 Android 应用程序中使用来裁剪和缓存bitmap然后发布到我的 API 的内容。我用Anko. 这是我的代码:

val bitmap=preview_image_view.drawable as BitmapDrawable //I previously used `preview_image_view.setDrawable` to set this image. It shows properly in the debugger!
doAsync{ //an Anko specific thing
    val file= Glide.with(applicationContext).asFile().load(bitmap).apply(RequestOptions().apply{
        diskCacheStrategy(DiskCacheStrategy.RESOURCE)
        centerCrop()
        override()
    }).submit().get() //Mysterious failure on submit()
    uiThread{ //another Anko specific thing
        Fuel.upload(.....

每当我点击该submit()功能时,我都会收到以下错误

W/Glide:大小为 [400x400] 的 android.graphics.drawable.BitmapDrawable@fb798b8 加载失败

com.bumptech.glide.load.engine.GlideException 类:加载资源失败

Glide没有给我任何原因、堆栈跟踪等,以帮助我找出发生此错误的原因。关于是什么导致它失败的任何想法?

标签: androidkotlinandroid-glide

解决方案


后来我发现了 Glide 图片加载失败的原因。我尝试缓存的图像超出了 Android 应用程序缓存的大小,但没有提供信息性错误。后来,Glide 尝试加载损坏的数据(大小为 0 的图像),但无法加载。

在缓存之前缩小图像(确保它在 Android 应用程序缓存大小限制之下)解决了这个问题。


推荐阅读