安卓平台的Picasso在某些图片上失败了

4

Android的Picasso工具非常好用,但我在加载一些图片时遇到了问题。

问题出在调整大小或适应屏幕上。我正在使用最新版本的Picasso。

代码示例:

            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

我在加载一些图片时遇到了问题,这实际上是什么意思?应用程序会崩溃吗? - klimat
@mklimek它们没有加载并调用错误回调。 - Warpzit
调试Picasso调用。尝试找出是什么导致了错误回调的触发。如果不知道错误的原因,我们无法帮助您修复它。 - Xaver Kapeller
@XaverKapeller应该很容易复制,你有URL和代码,但是我也可以自己做 :) - Warpzit
@Warpzit 不,你应该在任何其他操作之前打开调试模式,以查看Picasso正在做什么。此外,为了保险起见,请尝试使用硬引用、非匿名回调函数。如果在调试和尽可能收集信息之前就发布问题,那么你就没有完成功课 :) - Martin Marconcini
@MartínMarconcini,我对picasso没有太多经验,我在logcat中登录了,但它没有打印出任何有价值的信息(据我所知),这就是为什么我转向stackoverflow的原因。此外,在github上也有一些与此问题相关的问题,但它们都已关闭,这也是我认为它无论如何都会引起其他人兴趣的原因... - Warpzit
1个回答

2

您的问题是由以下方法生成的:

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

因为offset大于limit。该limitBitmapHunter类的decodeStream方法中被设置。在那里,您可以找到这行代码(第117行)。
long mark = markStream.savePosition(65536); // TODO fix this crap.

我认为TODO注释是你问题的答案。这是Piccasso库的问题。


_< 哈哈,那个待办事项真的很棒。好吧,我得在 GitHub 上提一个问题。谢谢你的帮助,你有没有想过我该如何找到一个解决方法?
- Warpzit
这个值是硬编码的,而且这个API不是公开的。我不知道如何解决它,但我担心没有正确的方法来做到这一点,除非使用一些技巧。 - Konrad Krakowiak
这里有一个不错的Picasso替代方案 https://github.com/nostra13/Android-Universal-Image-Loader。也许它会更适合你。 - Konrad Krakowiak
还有一个几乎相同的库 - Glade https://github.com/bumptech/glide - Sirop4ik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接