java.lang.IllegalArgumentException: Path must not

2019-02-09 07:14发布

I am loading image from mysql DB using Picasso into custom listview. The image is loading when the URL is passed directly but when i assign the URL to string and pass it then it throws exception saying Path must not be empty.

String Image = md.Image;

Image string contains http://example.com/image.jpg

I am passing in picasso like below.

Picasso.with(view.getContext())
.load(Image)
.into(iview);                                                           

When i pass like this i am getting java.lang.IllegalArgumentException: Path must not be empty. I have tried the above step like below but image is not loading.

Picasso.with(view.getContext())
.load(new File(Image))
.into(iview);

What is wrong with the above declaration?

3条回答
手持菜刀,她持情操
2楼-- · 2019-02-09 07:49

Just check if your url string is empty or not by first trimming the string path, but do not check like image.isEmpty() but with this check:

if (path.trim().length() == 0)

I checked the code from Picasso and that is how they are checking like this. For reference here is code from their code base:

public RequestCreator load(String path) {
    if (path == null) {
      return new RequestCreator(this, null, 0);
    }
    if (path.trim().length() == 0) {
      throw new IllegalArgumentException("Path must not be empty.");
    }
    return load(Uri.parse(path));
  }
查看更多
贼婆χ
3楼-- · 2019-02-09 08:06

I had similar problem. Just check if your url string is empty or not. if it is empty give the default image or load from url. Hope this helps.

if (image.isEmpty()) {
   iview.setImageResource(R.drawable.placeholder);
} else{
    Picasso.with(_c).load(image).into(iview);
  }
查看更多
forever°为你锁心
4楼-- · 2019-02-09 08:10

I think your md.Imageis returning an empty string. So try directly put your image url in picasso like this:

Picasso.with(view.getContext())
.load(" http://xxx.xxx.com/images/New%20folder/Desert.jpg.")
.into(iview);

Hope it works.

查看更多
登录 后发表回答