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

Picasso框架通过URL加载展示简单图片功能失效问题求助

Picasso通过URL加载图片失败的原因及解决办法

已确认的问题点

  • 代码存在语法错误:定义的URL变量为url1,调用load()方法时传入的是未声明的变量url,同时url1的字符串未闭合,值不是有效的图片资源地址,仅为谷歌搜索页前缀,无法加载为图片。
  • 依赖版本过旧:使用的Picasso 2.4.0为多年前的老旧版本,对高版本Android的网络适配、HTTPS资源加载的兼容性较差,且API已废弃,当前稳定版已改用Picasso.get()替代原有Picasso.with(context)的初始化方式。
  • 缺少必要权限:加载网络远程图片需要申请网络权限,未在清单文件中配置会直接加载失败。
  • 高版本系统限制:Android 9(API 28)及以上系统默认禁止HTTP明文流量传输,若加载的是HTTP协议的图片资源,默认会被拦截。

解决步骤

  1. 修正代码语法与资源地址
    替换为有效的图片直链,修正变量名匹配问题,示例代码如下:
// 此处填写可直接访问的图片资源直链,必须为图片文件地址,不能是网页链接
String imageUrl = "你的图片直链地址";
ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    image = findViewById(R.id.image);
    Picasso.get()
            .load(imageUrl)
            .placeholder(R.drawable.ic_launcher_foreground)
            .resize(200,200)
            .centerCrop()
            .into(image);
}
  1. 升级Picasso依赖到最新稳定版
    替换build.gradle中的依赖配置:
implementation "com.squareup.picasso:picasso:2.8"
  1. 配置网络权限
    在AndroidManifest.xml的<manifest>标签下、<application>标签外添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
  1. 适配高版本系统明文流量限制(仅加载HTTP图片时需要)
    在AndroidManifest.xml的<application>标签中添加属性:
android:usesCleartextTraffic="true"
  1. 开启调试排查其他问题
    如果仍加载失败,可以开启Picasso日志,在Logcat中查看具体错误原因:
Picasso.get().setLoggingEnabled(true);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 17:06:02