2

我正在启动几个线程来从网络上获取图像。问题是我随机在一两个请求中得到 java.io.EOFException 。这是我正在使用的代码,异常发生在 decodeStream 调用中:

InputStream inputStream = (InputStream) new URL(slot.mUrl).getContent();
mBitmap = BitmapFactory.decodeStream(inputStream);
inputStream.close();

这是堆栈信息:

java.io.EOFException
at libcore.io.Streams.readAsciiLine(Streams.java:203)
at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:560)
at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:813)
at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
at libcore.net.http.HttpURLConnectionImpl.getHeaderField(HttpURLConnectionImpl.java:130)
at java.net.URLConnection.getContentType(URLConnection.java:326)
at java.net.URLConnection.getContent(URLConnection.java:193)
at java.net.URL.getContent(URL.java:447)

知道有什么问题吗?

谢谢,雅科邦

4

2 回答 2

1

为什么不使用通用图像加载器从 URL 加载图像,因为 Inputstream 在 android 中有时会变为 null 我使用过这个:https ://github.com/nostra13/Android-Universal-Image-Loader

于 2013-08-08T12:40:12.100 回答
0

SO上有一些相关的问题,你可以像我一样找到它们。您也可以将您inputStream.close()的放在 finally 块中,因为我假设您可以在流程完成之前关闭流。否则,请尝试检查堆栈中行的来源,以查看引发异常的位置。

于 2013-08-08T12:36:10.403 回答