[英]weird networkonmainthread exception: only on galaxy nexus and not in the emulator
[英]Weird EOFException on Galaxy Nexus
我的Android应用程序使用URLConnection
连接到Web服务。 它已经在市场上销售了一年多,效果很好。 但是,最近出现了Galaxy Nexus用户的问题:
从URLConnection
获取输入流(甚至还没有读取!)时:
final BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()), 8192);
在getInputStream()
抛出EOFException
。
首先我认为这可能是一个ICS问题,所以我在我的Nexus S上安装了早期版本,但在那里我无法重现这个问题。 然后我就可以访问Galaxy Nexus,它与我收到的错误报告一样崩溃,这让我相信这可能不是单个手机表现得很奇怪的情况。
可以在此处看到崩溃的堆栈跟踪以及GitHub上的整个代码。 这真的很奇怪,该应用程序在Android Market上安装了大约100k +,这个问题似乎只出现在Galaxy Nexus上。
任何提示或建议将不胜感激!
我在ICS上看到同样的错误,我通过禁用keepAlive来“修复”它:
System.setProperty("http.keepAlive", "false");
在开发我的应用程序期间,我在Xperia Arc S(Note!Non-ICS)上看到了同样的问题。 我几乎可以肯定,我们看到了两个不同问题的相同症状。
在我的情况下,我正在读取整个流作为UTF8 String
但服务器端实现期望我将第一个字节读取为数字byte
,其余部分作为UTF8 String
读取。
我不确定为什么我真的得到了EOFException
,但是阅读流,注意自定义协议中的类型,解决了我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.