【问题标题】:Picasso for Android fails on some imagesPicasso for Android 在某些图像上失败
【发布时间】:2017-04-04 17:30:34
【问题描述】:

Picasso for Android 运行良好,但我无法加载一些图片。

导致问题的是任何调整大小或适合命令。我正在使用最新版本的毕加索。

代码示例:

            Picasso.with(getActivity())
                .load(url)
                        .fit()
                        .centerCrop()
                //.resize(Utility.pxFromDp(getActivity(), 100), Utility.pxFromDp(getActivity(), 100))
                .into(profile, new Callback() {
                    @Override
                    public void onSuccess() {
                        Log.d("awesome", "picasso load woho");
                    }
                    @Override
                    public void onError() {
                        Log.d("awesome", "picasso load error");// <-- this is called
                    }
                });

我在 github 上创建了一个问题:https://github.com/square/picasso/issues/933

【问题讨论】:

  • “我在加载一些图片时遇到问题”——这究竟是什么意思?应用崩溃?
  • @mklimek 他们不加载并调用错误回调
  • 调试毕加索调用。尝试找出实际导致调用错误回调的原因。在不知道是什么导致错误的情况下,我们无法帮助您修复它。
  • @XaverKapeller 应该很容易复制,你有 url 和代码,但是我自己也可以这样做:)
  • @Warpzit 不,你应该先[打开调试],看看毕加索在做什么。此外,请尝试使用硬引用、非匿名回调以防万一。如果您在调试之前发布问题并尽可能多地查找信息,那么您没有做功课:)

标签: android picasso


【解决方案1】:

您的问题是由这种方法产生的:

 public void reset(long token) throws IOException {
    if (offset > limit || token < reset) {
      throw new IOException("Cannot reset");
    }
    ...
  }

因为offset 大于limit。限制在BitmapHunter 类的decodeStream 方法中设置。在那里你可以找到这条线 (117)

long mark = markStream.savePosition(65536); // TODO fix this crap.

我认为TODO 评论是您问题的答案。这是 Piccasso 图书馆的问题。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 2015-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多