Home » Android » android – java.lang.IllegalArgumentException: Path must not be empty in Picasso

android – java.lang.IllegalArgumentException: Path must not be empty in Picasso

Posted by: admin May 14, 2020 Leave a comment

Questions:

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 imageStringUrl = md.Image;

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

I am passing in Picasso like below.

Picasso.get()
.load(imageStringUrl)
.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 the image is not loading.

Picasso.get()
.load(new File(imageStringUrl))
.into(iview);

What is wrong with the above declaration?

How to&Answers:

I had a 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.get().load(image).into(iview);
  }

Answer:

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));
  }

Answer:

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

Picasso.get()
.load(" http://xxx.xxx.com/images/New%20folder/Desert.jpg.")
.into(imageView);

Hope it works.