求助:Picasso中placeholder及error方法报错如何修复?
嘿,我来帮你搞定这个问题!从你贴的代码和报错截图来看,核心问题是系统找不到你在placeholder()和error()方法里指定的drawable资源。下面给你列几个实用的排查和修复步骤:
先确认资源文件是否存在
去你的项目res/drawable文件夹(或者对应分辨率的子文件夹,比如drawable-xhdpi)里看看,有没有placeholder和error这两个命名的图片文件(格式可以是png、jpg等)。如果没有的话,把对应的图片文件添加进去就行。检查资源名称是否完全匹配
Android的资源名称是区分大小写的,而且只能用字母、数字和下划线,不能有空格或特殊字符。比如你代码里写的是R.drawable.placeholder,那文件名必须是placeholder.png(不能是Placeholder.png或者placeholder_img.png),一点都不能错哦。清理重建项目,解决缓存问题
有时候Android Studio的资源缓存会抽风,明明文件存在却识别不到。这时候你可以:- 点击顶部菜单栏的
Build->Clean Project - 接着点击
Build->Rebuild Project
等项目重新构建完成后,再看看报错是不是消失了。
- 点击顶部菜单栏的
检查Picasso版本与语法兼容性
你代码里用的Picasso.with(this)是旧版本的写法,现在最新的Picasso已经改用Picasso.get()了。如果你的依赖是新版本,建议把代码改成这样:Picasso.get() .load("http://cloudofoasis.com/api/Ivan/Gambar/bkgutama.jpg") .placeholder(R.drawable.placeholder) .fit() .error(R.drawable.error) .into(ImageMenuUtama);同时记得在
build.gradle(Module level)里确保依赖是最新稳定版:implementation 'com.squareup.picasso:picasso:2.71828'
如果做完这些还是有问题,可以看看报错的具体提示信息,比如是不是图片文件损坏了,换一张正常的测试图片试试应该就能找到问题啦。
内容的提问来源于stack exchange,提问作者sweetpoem

