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,提问作者Шахов Глеб
相关产品推荐
相关产品推荐

