问题
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?
回答1:
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);
}
回答2:
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:
I think your md.Image
is 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.
来源:https://stackoverflow.com/questions/35721692/java-lang-illegalargumentexception-path-must-not-be-empty-in-picasso