在Android中获取图像时的System.err

时间:2011-12-21 20:03:00

标签: java android bitmap

我正在使用信使服务从URL异步获取图像,但LogCat抛出了一条奇怪的错误信息:

W / System.err(26180):从./org/apache/harmony/awt/www/content/image/png.class

读取错误

- 或 -

W / System.err(26180):从./org/apache/harmony/awt/www/content/image/jpeg.class读取错误

有趣的是,一切都有效。第一次尝试将图像成功解码为位图。

这是我的代码:

@Override
public void onHandleIntent(Intent i) {
    int position = (Integer)i.getExtras().get(EXTRA_POSITION); 
    String imageUrl = (String)i.getExtras().get(EXTRA_URL);
    Messenger messenger = (Messenger)i.getExtras().get(EXTRA_MESSENGER);
    Message msg = Message.obtain();
    Bitmap bitmap = null;
    try {
        bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
        msg.arg1 = Activity.RESULT_OK;
        msg.arg2 = position;
        msg.obj = bitmap;
    } catch(Exception e) {
        Log.e("RSSForHC", "Exception getting image", e);
        msg.arg1 = Activity.RESULT_CANCELED;
        msg.obj = e;
    }

    try {
        messenger.send(msg);
    } catch (Exception e) {
        Log.w("RSSForHC","Exception sending results to activity", e);
    }
}

这一行肯定会抛出错误:

bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());

既然一切正常,我的问题是忽略这个错误是否可以接受?有谁知道为什么会抛出这个错误以及我怎么可能纠正它或处理它?<​​/ p>

2 个答案:

答案 0 :(得分:1)

这对我有用,可以摆脱这些消息。当然迈克尔可能仍然是对的,忽略它们是可以的。

我换了 Drawable.createFromStream(((InputStream)new URL(urlString).getContent()),“name”); 与
Drawable.createFromStream((new URL(url))。openConnection()。getInputStream(),“name”);

当然这不完全是你的代码,但我怀疑用openConnection()替换getContent()。getInputStream()也适合你。

答案 1 :(得分:0)

这显然是Apache / Harmony框架中的一个错误。 我想你可能会忽略它,你不能在那里改变代码,即使你想要:) 它对于apache / harmony开发人员来说是一种日志记录,你不必关心它。