我正在启动几个线程,用于从网络中获取图像。问题是randomally我在一个或两个请求中得到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)
知道问题是什么?
谢谢, yakobom
答案 0 :(得分:1)
为什么不使用通用图像加载器从URL加载图像,因为Inputstream在android中有时候变为null我使用过:https://github.com/nostra13/Android-Universal-Image-Loader
答案 1 :(得分:0)
关于SO有一些相关的问题,你可以像我一样找到它们。
您可以将inputStream.close()
置于finally块中,因为我假设您可以在流程完成之前关闭流。
否则,尝试检查堆栈中的行的来源,以查看异常的引发位置。