解決 java.lang.IllegalArgumentException: Path must not be empty.

326 阅读1分钟

问题起因

image.png 利用Picasso对JSon中的图片URL进行解析时,爆出了java.lang.IllegalArgumentException: Path must not be empty.的Error

原因分析

根据报错我们定位到对应的代码

image.png 根据报错提示,以及结合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) 
    }

参考文献