【问题标题】:Picasso context==null issue毕加索上下文==空问题
【发布时间】:2019-06-05 18:58:37
【问题描述】:

我在 crashlytics 中遇到以下崩溃:

Fatal Exception: java.lang.IllegalStateException: context == null
   at com.squareup.picasso.Picasso.get(Picasso.java:681)
   at com.package.name.Recycler.RecyclerVideoAdapter.onBindViewHolder(RecyclerVideoAdapter.java:435)

RecyclerVideoAdapter.java:435指的是:

Picasso.get().load(category.get(position).getImage()).noFade().tag("tag").resize(100, 100).centerCrop().networkPolicy(NetworkPolicy.OFFLINE).placeholder(R.drawable.image_placeholder).into(holder.img, new Callback() {
    @Override
    public void onSuccess() {
        //Success
    }

    @Override
    public void onError(Exception e) {
        Picasso.get().load(category.get(position).getImage()).noFade().resize(100, 100).centerCrop().memoryPolicy(MemoryPolicy.NO_CACHE).placeholder(R.drawable.image_placeholder).into(holder.img);
    }
});

上面是在我的onBindViewHolder中调用的


我已经看到这个问题被张贴在here,但我找不到解决方案。

我认为这个问题也值得一提。


问题:

有没有人遇到过这个问题,你是怎么解决的?

【问题讨论】:

    标签: java android picasso


    【解决方案1】:

    您需要初始化 Picasso 的单例实例。将此代码放入您的 Application 类的 onCreate() 方法中:

    Picasso.setSingletonInstance(
                    new Picasso.Builder(this)
                            // additional settings
                            .build());
    

    【讨论】:

    • 我没有应用程序类,请在今天向 eirlier 提出的这个答案中查看我的 cmets - stackoverflow.com/a/53350886/8199772
    • 你能给我一个建议吗?我问那个答案是否可以在我的“MainActivity”中初始化Picasso
    • @ClassA 我不确定在活动类中初始化单音是否是个好主意,因为由于配置更改或其他原因,您的活动可能会重新创建。但是您可以创建应用程序类并将其注册到清单中。然后将上面的代码放在你的应用程序类的 onCreate 方法中,这样你就可以确定它只会被初始化一次
    • 由于我无法测试它是否正常工作,我会接受您的回答并检查更新后是否仍然出现此崩溃。谢谢。
    猜你喜欢
    • 2018-04-26
    • 2014-09-02
    • 2015-04-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多