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

Android中如何用Picasso加载图片?尝试Glide也无法正常工作

Android中Picasso加载图片失败的排查与解决

你已经完成了Picasso加载图片的基础步骤,但同时使用Picasso和Glide加载同一ImageView且均失败,可按以下步骤排查解决:

1. 修复Android 9+的明文网络限制

Android 9(API 28)及以上版本默认禁止明文HTTP请求,你的图片链接是HTTP协议,需开启明文流量支持:
在AndroidManifest.xml的application标签中添加属性:

<application
    ...
    android:usesCleartextTraffic="true">
    ...
</application>

2. 确认权限配置正确

确保在AndroidManifest.xml的根标签下添加了网络权限:

<uses-permission android:name="android.permission.INTERNET" />

3. 移除重复加载代码

代码中同时用Glide和Picasso加载同一个ImageView会导致资源冲突,保留其中一套加载逻辑即可,比如只保留Picasso的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageView imageView = findViewById(R.id.imageView);
    String urlPath = "http://217.175.38.5:53389/photo/employee/262421?lastmod=1649263637";

    Picasso
            .get()
            .load(urlPath)
            .into(imageView);
}

4. 验证依赖版本正确性

检查build.gradle(Module level)中的依赖是否为最新稳定版:

  • Picasso依赖:
implementation 'com.squareup.picasso:picasso:2.71828'
  • 若使用Glide,需添加:
implementation 'com.github.bumptech.glide:glide:4.16.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'

5. 测试图片链接可用性

将urlPath复制到浏览器中,确认图片能正常打开。如果链接无法访问,需检查后端服务是否正常或链接是否正确。

6. 添加错误监听排查具体问题

通过错误回调获取加载失败的具体原因,方便定位问题:

Picasso错误监听

Picasso.get()
        .load(urlPath)
        .error(R.drawable.your_error_placeholder) // 可选,加载失败时显示的占位图
        .listener(new Picasso.Listener() {
            @Override
            public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) {
                exception.printStackTrace(); // 在Logcat中查看错误信息
            }
        })
        .into(imageView);

Glide错误监听

Glide.with(this)
        .load(urlPath)
        .error(R.drawable.your_error_placeholder)
        .listener(new RequestListener<Drawable>() {
            @Override
            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                if (e != null) {
                    e.printStackTrace(); // 在Logcat中查看错误信息
                }
                return false;
            }

            @Override
            public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                return false;
            }
        })
        .into(imageView);

内容的提问来源于stack exchange,提问作者Шахов Глеб

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:50:23