【问题标题】:Picasso not loading images毕加索不加载图像
【发布时间】:2014-08-29 17:37:09
【问题描述】:

我使用 Picasso 已经有一段时间了,但我不得不将 OkHttp 库升级到 2.0.0,因此我不得不将 Picasso 升级到 2.3.2 版本。

但是,现在毕加索根本不加载任何图像,图像视图是空的。任何时候都没有出现错误,但是当我打开 Picasso 登录时,“Hunter”似乎已被调度并开始执行,但从未完成。

所有图片都可访问且相当小(大约 200 像素 x 100 像素)。

我正在通过毕加索的“典型”方法加载图像:

Picasso.with(context).load(url).error(R.drawable.errorimg).into(imageView);

但是,errorimg 从未显示。

我做错了什么?

编辑:

这是毕加索不工作的地方之一的代码(PlaceListAdapter.java - getView 函数)

public View getView(int position, View convertView, ViewGroup parent) 
{
    final PBNPlace ev = values.get(position);

    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.places_list_item, parent, false);

    TextView titleView = (TextView)rowView.findViewById(R.id.place_title);
    ImageView placeImage = (ImageView)rowView.findViewById(R.id.place_image);

    Picasso picasso = Picasso.with(context);
    picasso.load(ev.imageURL).error(R.drawable.chat).into(placeImage);

    titleView.setText(ev.name);

    return rowView;
}

【问题讨论】:

  • 如果您想从其他人那里获得更多有用的帮助,请粘贴一些相关代码。
  • 嗯,这可能是最大的图像之一,因为它是一个横幅:portobynight.com/wp-content/uploads/2014/07/…
  • 您是否调试并检索了您传递给毕加索的网址?因为你可以在浏览器中查看它并不总是意味着它会被毕加索解决
  • 是的,该 URL 在 2.1.1 中确实有效。我现在无法加载任何图像。 :(
  • 网址是什么?我可以确认它使用 OkHttp 加载。 (如果你不想在这里分享,我是 swank dot ca 的 jesse。)

标签: android image loading picasso okhttp


【解决方案1】:

你升级OKHttp的时候,是不是也升级了okhttp-urlconnection依赖?

我遇到了这个问题,结果我仍然在 build.gradle 文件中调用 1.6.0 版的 okhttp-urlconnection。没有任何错误消息让我很清楚我忽略了这一点。

将其更改为 2.0.0 解决了问题。

【讨论】:

  • 我没有使用 gradle,但我找不到 2.0.0 的 jar 用于 okhttp-urlconnection(我仍然找不到)。可能是这个问题,我以为1.6.0是最新的版本!
  • 不,还是不行,很遗憾。我刚刚将 1.6.0 更改为 2.0.0 RC1,它仍然无法正常工作。 :(
  • versioneye.com/java/com.squareup.okhttp:okhttp-urlconnection/… 试试这个,它终于对我有用了。
【解决方案2】:

Picasso 内部没有 HTTP 客户端,所以说“支持 HTTPS”意义不大。

当您传入一个 url(无论它具有 http:// 或 https:// 的方案)时,我们会将其传递给最合适的 HTTP 客户端。

也许是 java.net.HttpURLConnection。也许是那个性感的字节码 OkHttp 包。底线是,无论方案是什么,我们都让 HTTP 客户端处理它。

您在使用 http:// 和 https:// 时遇到的任何问题都在客户端的配置中,而不是 Picasso。

JakeWharton表示

因此,要加载图像,您只需在 gradle 文件中添加以下依赖项。

compile 'com.squareup.okhttp:okhttp:2.2.+'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.+'
compile 'com.squareup.picasso:picasso:2.5.2'

参考:https://github.com/square/picasso/issues/500

【讨论】:

    【解决方案3】:
    <uses-permission android:name="android.permission.INTERNET"/>
    

    这可能是最愚蠢的答案,但很抱歉。有时我们会忘记一些小事。您是否检查过您的许可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 2018-09-02
      • 1970-01-01
      • 2014-09-26
      • 2016-12-12
      • 1970-01-01
      相关资源
      最近更新 更多