You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中使用Picasso的Target加载通知大图时的报错求助

解决Android中Picasso加载图片到通知LargeIcon的错误问题

问题分析

你遇到的两个错误核心原因如下:

  1. 最初的警告:是因为导入了非Picasso库的Target类(比如注解包下的Target),导致接口方法不匹配。
  2. 导入正确的com.squareup.picasso.Target后出现的错误:是因为新版本Picasso的Target接口中,onBitmapFailed方法要求传入Exception参数,而你写的方法只传了Drawable,方法签名不匹配。

解决方案

1. 确保导入正确的Target类

必须在代码顶部导入Picasso专属的Target类:

import com.squareup.picasso.Target;

2. 修正Target匿名类的方法实现

把onBitmapFailed的方法签名改成带Exception参数的版本,完整代码如下:

Picasso.get().load("https://mbracecloud.com/appln_enterprise/images/reconnect_feature7.jpg")
        .into(new Target() {
            @Override
            public void onBitmapLoaded(final Bitmap bitmap, final Picasso.LoadedFrom from) {
                notificationBuilder1.setLargeIcon(bitmap);
                notificationManager.notify(notification_id, notificationBuilder1.build());
            }

            @Override
            public void onBitmapFailed(Exception e, Drawable errorDrawable) {
                // 可选:添加错误处理逻辑,比如打印日志或设置默认图标
                Log.e("PicassoLoadError", "通知图标加载失败", e);
            }

            @Override
            public void onPrepareLoad(final Drawable placeHolderDrawable) {
                // 可选:加载前的占位图处理
            }
        });

3. 额外注意:避免Target被GC回收

匿名内部类的Target如果没有全局强引用,可能会被垃圾回收器回收,导致图片加载完成后回调不执行。建议把Target声明为Activity/Fragment的成员变量:

// 类成员变量
private Target notificationIconTarget;

// 初始化时赋值
notificationIconTarget = new Target() {
    @Override
    public void onBitmapLoaded(final Bitmap bitmap, final Picasso.LoadedFrom from) {
        notificationBuilder1.setLargeIcon(bitmap);
        notificationManager.notify(notification_id, notificationBuilder1.build());
    }

    @Override
    public void onBitmapFailed(Exception e, Drawable errorDrawable) {
        Log.e("PicassoLoadError", "通知图标加载失败", e);
    }

    @Override
    public void onPrepareLoad(final Drawable placeHolderDrawable) {
        // 占位处理逻辑
    }
};

// 加载图片时调用
Picasso.get().load("图片URL").into(notificationIconTarget);

内容的提问来源于stack exchange,提问作者Ahamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:15:26