问题起因
利用Picasso对JSon中的图片URL进行解析时,爆出了java.lang.IllegalArgumentException: Path must not be empty.
的Error
原因分析
根据报错我们定位到对应的代码
根据报错提示,以及结合JSon数据情况,在设置api接口时,我们设置了内容不为空,但没有保证是否存在图片,受限于数据源,我们可以采用不存在图片时,采用本地默认的图片,但我们依旧需要进行了以下步骤
- 全部采用本地图片,查看是否可正常显示:
holder.newsImg.setImageResource(R.drawable.news)
正常显示,进行下一步 - 设定当news.thumbnail_pic_s为空时,采用本地图片,否则采用Picassco解析
if(news.thumbnail_pic_s!=null){holder.newsImg.setImageResource(R.drawable.news)}else{Picasso.get().load(news.thumbnail_pic_s).into(holder.newsImg)}
依旧错误,均显示本地图片,继续分析原因
- 这次,我们修改为
if (news.thumbnail_pic_s.isNullOrEmpty()){ holder.newsImg.setImageResource(R.drawable.news) }else{ Picasso.get().load(news.thumbnail_pic_s).into(holder.newsImg) }
问题解决
解决方案
if (news.thumbnail_pic_s.isNullOrEmpty()){
holder.newsImg.setImageResource(R.drawable.news)
}else{
Picasso.get().load(news.thumbnail_pic_s).into(holder.newsImg)
}