简体   繁体   English

尝试从URL加载可绘制图像时发生异常

[英]Exception when trying to load drawable image from URL

Here's the code: 这是代码:

private static Drawable loadImageFromUrl(String url) {
    URL m;
    BufferedInputStream bis = null;
    Drawable d = null;
    try {
        m = new URL(url);
        URLConnection conn = m.openConnection();
        conn.connect();
        bis = new BufferedInputStream(conn.getInputStream());  <<--- EOF exception occurs.
        d =
                Drawable.createFromStream(bis,
                        url.substring(url.lastIndexOf("/") + 1, url.length()));
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (bis != null) bis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    return d;
}

Is there any thing wrong in my code ? 我的代码有什么问题吗? The exception looks like this: 异常如下所示:

03-01 19:16:51.573: W/System.err(12554): java.io.EOFException
03-01 19:16:51.843: W/System.err(12554): java.io.EOFException
03-01 19:16:52.204: W/System.err(12554):    at libcore.io.Streams.readAsciiLine(Streams.java:203)
03-01 19:16:52.254: W/System.err(12554):    at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:547)
03-01 19:16:52.274: W/System.err(12554):    at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:787)
03-01 19:16:52.344: W/System.err(12554):    at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
03-01 19:16:52.354: W/System.err(12554):    at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
03-01 19:16:52.703: W/System.err(12554):    at com.gurudigger.model.task.UserPhotoTask.loadImageFromUrl(UserPhotoTask.java:36)
03-01 19:16:52.864: W/System.err(12554):    at com.gurudigger.model.task.UserPhotoTask.doInBackground(UserPhotoTask.java:78)
03-01 19:16:52.883: W/System.err(12554):    at com.gurudigger.model.task.UserPhotoTask.doInBackground(UserPhotoTask.java:1)
03-01 19:16:53.003: I/InputQueue-JNI(12554): Sending finished signal for input channel '4163b660 com.gurudigger/com.gurudigger.activity.IdeaListActivity (client)' since it is being unregistered while an input message is still in progress.
03-01 19:16:53.063: W/System.err(12554):    at android.os.AsyncTask$2.call(AsyncTask.java:264)
03-01 19:16:53.124: W/System.err(12554):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-01 19:16:53.244: I/InputQueue-JNI(12554): Ignoring finish signal on channel that is no longer registered.
03-01 19:16:53.503: W/System.err(12554):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-01 19:16:53.513: W/System.err(12554):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
03-01 19:16:53.694: W/System.err(12554):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
03-01 19:16:53.773: W/System.err(12554):    at java.lang.Thread.run(Thread.java:856)
03-01 19:16:53.813: W/System.err(12554):    at libcore.io.Streams.readAsciiLine(Streams.java:203)
03-01 19:16:53.994: W/System.err(12554):    at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:547)
03-01 19:16:53.994: W/System.err(12554):    at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:787)
03-01 19:16:54.024: W/System.err(12554):    at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
03-01 19:16:54.024: W/System.err(12554):    at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
03-01 19:16:54.024: W/System.err(12554):    at com.gurudigger.model.task.UserPhotoTask.loadImageFromUrl(UserPhotoTask.java:36)
03-01 19:16:54.024: W/System.err(12554):    at com.gurudigger.model.task.UserPhotoTask.doInBackground(UserPhotoTask.java:78)
03-01 19:16:54.064: W/System.err(12554):    at com.gurudigger.model.task.UserPhotoTask.doInBackground(UserPhotoTask.java:1)
03-01 19:16:54.064: W/System.err(12554):    at android.os.AsyncTask$2.call(AsyncTask.java:264)
03-01 19:16:54.144: W/System.err(12554):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-01 19:16:54.163: W/System.err(12554):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-01 19:16:54.224: W/System.err(12554):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
03-01 19:16:54.333: W/System.err(12554):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
03-01 19:16:54.354: W/System.err(12554):    at java.lang.Thread.run(Thread.java:856)

Why create something that already exists? 为什么要创建已经存在的东西? Just use this library it's easy to use. 只需使用此库,它就很容易使用。

URLImageViewHelper URLImageViewHelper

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM