android - 从 Firebase 获取图像时出现 Glide 异常
问题描述
我正在尝试使用 glide 从 Firebase 存储中加载图像:
StorageReference storageReference = FirebaseStorage.getInstance().getReference();
StorageReference fileRef = storageReference.child("ProfileIcons/0.png");
Glide.with(getContext()).load(fileRef).into(img_profile_icon);
参考是好的,图像存在,但它给了我这个错误并且照片没有加载:
E/GlideExecutor: Request threw uncaught throwable
com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders for model: gs://firestoretest-13873.appspot.com/ProfileIcons/0.png
at com.bumptech.glide.Registry.getModelLoaders(Registry.java:587)
at com.bumptech.glide.load.engine.DecodeHelper.getLoadData(DecodeHelper.java:207)
at com.bumptech.glide.load.engine.DecodeHelper.getCacheKeys(DecodeHelper.java:224)
at com.bumptech.glide.load.engine.ResourceCacheGenerator.startNext(ResourceCacheGenerator.java:44)
at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)
at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:276)
at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:431)
W/Glide: Load failed for gs://firestoretest-13873.appspot.com/ProfileIcons/0.png with size [300x300]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
There was 1 cause:
com.bumptech.glide.Registry$NoModelLoaderAvailableException(Failed to find any ModelLoaders for model: gs://firestoretest-13873.appspot.com/ProfileIcons/0.png)
call GlideException#logRootCauses(String) for more detail
Cause (1 of 1): class com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders for model: gs://firestoretest-13873.appspot.com/ProfileIcons/0.png
I/Glide: Root cause (1 of 1)
com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders for model: gs://firestoretest-13873.appspot.com/ProfileIcons/0.png
at com.bumptech.glide.Registry.getModelLoaders(Registry.java:587)
at com.bumptech.glide.load.engine.DecodeHelper.getLoadData(DecodeHelper.java:207)
at com.bumptech.glide.load.engine.DecodeHelper.getCacheKeys(DecodeHelper.java:224)
at com.bumptech.glide.load.engine.ResourceCacheGenerator.startNext(ResourceCacheGenerator.java:44)
at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)
at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:276)
at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:431)
我检查了一些解决方案并尝试将其添加到我的课程中,但仍然无法正常工作:
@GlideModule
public static class MyAppGlideModule extends AppGlideModule {
@Override
public void registerComponents(Context context, Glide glide, Registry registry) {
// Register FirebaseImageLoader to handle StorageReference
registry.append(StorageReference.class, InputStream.class,
new FirebaseImageLoader.Factory());
}
}
解决方案
请务必遵循文档中列出的所有步骤。您可能会错过添加注释处理器依赖项的步骤:
annotationProcessor 'com.github.bumptech.glide:compiler:4.x'
推荐阅读
- datastage - IBM DataStage:无法使用查找阶段删除重复记录
- django - 在 django admin 中自动搜索所有模型的所有字段
- java - 如何通过关键点放心提取json响应
- wordpress - 在 WordPress 中,当从查询中使用排除 id 时,每页帖子不起作用
- python - seaborn:限制 relplot() 中“col”的数量
- javascript - 在 Laravel 应用程序上使用 Ajax 更改 foreach 中的变量值
- reactjs - 在反应钩子中使用 prevState 操作状态,
- javascript - Forge Viewer - 如何在场景中访问(或获取渲染/片段代理)克隆的网格?
- android - Android 应用程序在从带有空工具栏的空白屏幕上推送时停止
- mysql - 使用命令 Like% 搜索