在最新的 Firebase 版本 (10.2.4) 中使用 Glide 和 FirebaseUI 加载图像
Posted
技术标签:
【中文标题】在最新的 Firebase 版本 (10.2.4) 中使用 Glide 和 FirebaseUI 加载图像【英文标题】:Loading Images with Glide and FirebaseUI in newest Firebase Version (10.2.4) 【发布时间】:2017-10-06 19:22:07 【问题描述】:所以我将 firebase 与 playservices 一起更新到了最新版本 (10.2.4),突然我的应用程序中使用 Glide 加载的所有图像都不再加载。 如果我的 build.gradle 中有这个
ext
supportLibraryVersion = '25.3.1'
firebaseLibraryVersion = '10.2.1'
playServicesLibraryVersion = '10.2.1'
dependencies
// play services
compile "com.google.android.gms:play-services-places:$playServicesLibraryVersion"
compile "com.google.android.gms:play-services-auth:$playServicesLibraryVersion"
// firebase
compile "com.google.firebase:firebase-storage:$firebaseLibraryVersion"
// ...
运行这行代码运行良好。
Glide.with(mContext).using(new FirebaseImageLoader()).load(storageReference).into(viewHolder.profileImage);
但是,如果我将 firebase 和 play 服务设置为最新版本:
ext
supportLibraryVersion = '25.3.1'
firebaseLibraryVersion = '10.2.4'
playServicesLibraryVersion = '10.2.4'
然后上面的行不再起作用了。它根本不加载图像。 我将代码更改为这样,以便查看错误可能是什么:
Glide.with(mContext)
.using(new FirebaseImageLoader())
.load(storageReference)
.listener(new RequestListener<StorageReference, GlideDrawable>()
@Override
public boolean onException(Exception e, StorageReference model, Target<GlideDrawable> target, boolean isFirstResource)
Log.d(TAG, "exception " + e.getMessage());
e.printStackTrace();
return false;
@Override
public boolean onResourceReady(GlideDrawable resource, StorageReference model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource)
return false;
).into(viewHolder.mProfileImage);
我得到了这个日志语句:
Could not open resulting stream.
还有这个例外:
W/System.err: java.io.IOException: Could not open resulting stream.
05-08 19:10:04.513 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.google.firebase.storage.StreamDownloadTask.zzacI(Unknown Source)
05-08 19:10:04.513 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.google.firebase.storage.StreamDownloadTask.zza(Unknown Source)
05-08 19:10:04.513 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.google.firebase.storage.StreamDownloadTask$1.zzacK(Unknown Source)
05-08 19:10:04.513 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.google.firebase.storage.StreamDownloadTask$1.call(Unknown Source)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.google.firebase.storage.StreamDownloadTask$zza.zzacM(Unknown Source)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.google.firebase.storage.StreamDownloadTask$zza.read(Unknown Source)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at java.io.BufferedInputStream.read(BufferedInputStream.java:290)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:166)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:229)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$StreamReader.getUInt16(ImageHeaderParser.java:334)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.bitmap.ImageHeaderParser.getType(ImageHeaderParser.java:87)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapperResourceDecoder$ImageTypeParser.parse(GifBitmapWrapperResourceDecoder.java:147)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapperResourceDecoder.decodeStream(GifBitmapWrapperResourceDecoder.java:82)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapperResourceDecoder.decode(GifBitmapWrapperResourceDecoder.java:71)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapperResourceDecoder.decode(GifBitmapWrapperResourceDecoder.java:61)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapperResourceDecoder.decode(GifBitmapWrapperResourceDecoder.java:22)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.engine.DecodeJob.decodeFromSourceData(DecodeJob.java:190)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.engine.DecodeJob.decodeSource(DecodeJob.java:177)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.engine.DecodeJob.decodeFromSource(DecodeJob.java:128)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.engine.EngineRunnable.decodeFromSource(EngineRunnable.java:122)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.engine.EngineRunnable.decode(EngineRunnable.java:101)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.engine.EngineRunnable.run(EngineRunnable.java:58)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at java.lang.Thread.run(Thread.java:818)
05-08 19:10:04.514 8839-8839/com.gmail.linxydev.clientapp W/System.err: at com.bumptech.glide.load.engine.executor.FifoPriorityThreadPoolExecutor$DefaultThreadFactory$1.run(FifoPriorityThreadPoolExecutor.java:118)
回到版本 10.2.1 解决了这些问题,但也许还有其他解决方法?我在 2 台设备上进行了测试,一台运行 android 6,另一台运行 7,两者都发生了。
【问题讨论】:
您使用的是哪个版本的 FirebaseUI? 最新的,它唯一的一类存储。 你可以在没有 minifyEnabled 的情况下运行代码,这样异常会更清楚吗? 它没有启用,我相信google混淆了他们的firebase库。 无法发表评论,所以我就在这里写一个注释:此错误仅在您使用 glide 3.8.0 时发生:将 glide 降级到 3.7.0 并且一切正常! 【参考方案1】:对我来说,这似乎是 fixed,最新的 11.0.1 版本与 firebase-ui-2.0.1 结合使用。我不知道发生了什么变化。
【讨论】:
以上是关于在最新的 Firebase 版本 (10.2.4) 中使用 Glide 和 FirebaseUI 加载图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 firebase 消息传递 9.0 版本 最新版本
iOS 上 Google/Analytics 的最新 pod 版本要我安装 Firebase