java.lang.IllegalArgumentException:Picasso中的路径不能为空

问题描述 投票:9回答:3

我正在使用Picasso将图像从mysql DB加载到自定义列表视图中。直接传递URL时会加载图像,但是当我将URL分配给字符串并传递它时,它会抛出异常,表示路径不能为空。

String imageStringUrl = md.Image;

图像字符串包含http://example.com/image.jpg

我正如下面的毕加索一样过世。

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

当我像这样传递时,我得到java.lang.IllegalArgumentException:Path不能为空。我已尝试过上面的步骤,但图片未加载。

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

上述声明有什么问题?

java android picasso
3个回答
32
投票

我遇到了类似的问题。只需检查您的URL字符串是否为空。如果为空,则从URL提供默认图像或加载。希望这可以帮助。

if (image.isEmpty()) {
   iview.setImageResource(R.drawable.placeholder);
} else{
    Picasso.get().load(image).into(iview);
  }

4
投票

首先修剪字符串路径,检查你的url字符串是否为空,但是不要像image.isEmpty()一样检查,但是检查:

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

我检查了毕加索的代码,这就是他们这样检查的方式。这里是参考代码库的代码:

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

0
投票

我认为你的md.Imageis返回一个空字符串。所以尝试直接把你的image url放在picasso像这样:

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

希望它有效。

© www.soinside.com 2019 - 2024. All rights reserved.