我正在Android应用中使用Glide
裁剪并缓存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
没有给我任何原因,堆栈跟踪等信息,可以帮助我找到发生此错误的原因。关于什么原因导致失败的任何想法?
答案 0 :(得分:0)
后来我发现了Glide图片加载失败的原因。我尝试缓存的图像超出了 Android 应用程序缓存的大小,但没有提供信息性错误。后来,Glide 尝试加载损坏的数据(大小为 0 的图像),但无法加载。
在缓存之前缩小图像(确保它在 Android 应用程序缓存大小限制之下)解决了这个问题。