Glide无法加载服务器图片URL。

3

尝试加载类似以下URL的图像

"https://firebasestorage.googleapis.com/v0/b/content-office-e1931.appspot.com/o/usersData%2Fposts%2Fmedia_-KpGAURJbB33BKhTynV1?alt=media&token=26135949-a918-4572-9293-b639d43f04aa"

但 Glide 显示日志

Load failed for  with size [360x360]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
class com.bumptech.glide.load.engine.GlideException: Failed to load resource

之前的日志记录

Failed to find GeneratedAppGlideModule. You should include an annotationProcessor 
compile dependency on com.github.bumptech.glide:glide:compiler in your application 
and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules 
will be silently ignored

我不明白为什么加载图片需要添加AppGlideModule等代码。以下是我在Kotlin中添加编译器依赖的代码:
 //image loader
compile 'com.github.bumptech.glide:glide:4.0.0-RC1'
kapt 'com.github.bumptech.glide:compiler:4.0.0-RC1'

这里是我调用 Glide 的方法。
 fun bind(post: Post) {
    for ((k, v) in post.media) {
        Glide.with(itemView.context)
                .asBitmap()
                .apply(RequestOptions.encodeQualityOf(70))
                .apply(RequestOptions.overrideOf(width,width))
                .apply(RequestOptions.centerCropTransform())
                .load(v.downloadPath)
                .into(image)
    }
}

我尝试附加一个监听器来查看日志,了解Glide在尝试加载图像时发生了什么,但是我只看到“未能加载资源”,没有有用的信息。


也许与这个问题有关,https://github.com/bumptech/glide/issues/2039 - Prokash Sarkar
检查你在for循环中是否加载了正确的索引和值。 - Nithinlal
@Nithinlal,我非常确定这是正确的,就像第一条评论所说的那样,它确实与该问题有关。 - Dennis Zinkovski
你尝试过使用像Picasso这样的其他库吗?除此之外,它可能与https://dev59.com/kqPia4cB1Zd3GeqPzoON#um4eoYgBc1ULPQZFRnb6有关。 - lalosoft
5个回答

3

这对我可行:

Glide.with(itemView.context)
  .load(new URL(v.downloadPath))
  .into(image);

2
这可能是答案。您介意加上一些背景吗?为什么这个代码可以工作而不是 OP 的代码?当未来的访问者看到您的答案时,他们将会了解它为什么能够工作。谢谢。 - Troy Witthoeft

2
"最初的回答":我不知道这个解决方案是否适用于每个人,但在我的情况下它起作用了!
<application
    android:usesCleartextTraffic="true"


</application>

最初的回答:尝试以此格式加载您的图像

并尝试以此格式加载您的图像

Glide.with(context)
.load(new URL(your_image))
.into(image)

1

您的URL不应该在开头和结尾包含空格,即使有任何机会也要修剪您的URL。


0

您的图像源URL不正确,请确保它正确,并通过浏览器进行检查。


0

只需使用这个策略,你就完成了。

Glide.with(context)
            .asBitmap()
            .load("Your Network Image Path")
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .into(new CustomTarget<Bitmap>() {
                @Override
                public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
                    iv.setImageBitmap(resource);
                    iv.buildDrawingCache();
                }
                @Override
                public void onLoadCleared(@Nullable Drawable placeholder) { }
            });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接