首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能找到为模型类注册的任何ModelLoaders :类com.google.firebase.storage.StorageReference

未能找到为模型类注册的任何ModelLoaders :类com.google.firebase.storage.StorageReference
EN

Stack Overflow用户
提问于 2022-02-10 16:45:05
回答 2查看 1.3K关注 0票数 2

我已经看过了以前就这个话题问过的所有问题。但上面提到的解决方案对我不管用。

按照Glide的规定,我为我的应用程序注册了一个模型加载器,它驻留在app->src->java目录:MyAppGlideModule.java中。

代码语言:javascript
复制
package com.kenadams.app;

import android.content.Context;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Registry;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
import com.firebase.ui.storage.images.FirebaseImageLoader;
import com.google.firebase.storage.StorageReference;

import java.io.InputStream;

@GlideModule
public 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());
    }

}

以下是我如何在适配器类中调用Glide模块:adapter.java

代码语言:javascript
复制
    @Override
    public void onBindViewHolder(topicAdapter.ViewHolder holder, int position) {
  //Setting text      
holder.textView.setText(HtmlCompat.fromHtml(this.data.get(position),HtmlCompat.FROM_HTML_MODE_LEGACY));
//Setting image
        Glide.with(holder.iv.getContext()).load(sr.child("/1.png")).into(holder.iv);


    }

没有语法错误,该应用程序正在成功编译,但我仍然得到这个运行时错误:

代码语言:javascript
复制
com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders registered for model class: class com.google.firebase.storage.StorageReference
        at com.bumptech.glide.load.model.ModelLoaderRegistry.getModelLoaders(ModelLoaderRegistry.java:77)
        at com.bumptech.glide.Registry.getModelLoaders(Registry.java:594)
        at com.bumptech.glide.load.engine.DecodeHelper.getLoadData(DecodeHelper.java:212)
        at com.bumptech.glide.load.engine.DecodeHelper.getCacheKeys(DecodeHelper.java:229)
        at com.bumptech.glide.load.engine.ResourceCacheGenerator.startNext(ResourceCacheGenerator.java:47)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:311)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:277)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:413)
        at java.lang.Thread.run(Thread.java:764)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultPriorityThreadFactory$1.run(GlideExecutor.java:372)

前面提到过使用GlideApp而不是Glide.However的一些答案,--这对我不起作用。

此外,当我试图构建模块时,生成始终失败,因为android-exported:true不在intent filter中。这是没有意义的,因为MyAppGlideModule扩展了AppGlideModule而不是AppCompatActivity。因此,即使我想使用android-exported:true添加意图过滤器,我也无法这样做。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71069014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档