Android 的毕加索在某些图像上失败

Picasso for Android fails on some images

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

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

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

因为offsetlimit大。该限制在 BitmapHunter class 中的 decodeStream 方法中设置。在那里你可以找到这一行 (117)

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

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