4

我的 Android 应用程序用于URLConnection连接到 Web 服务。现在上市一年多了,效果还不错。但是,最近出现了 Galaxy Nexus 用户的问题:

从以下位置获取输入流(甚至还没有读取!)时URLConnection

final BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()), 8192);

AEOFException被抛出getInputStream()

首先我认为这可能是 ICS 问题,所以我在我的 Nexus S 上安装了一个早期版本,但我无法重现该问题。然后我访问了 Galaxy Nexus,它崩溃的方式与我收到的错误报告相同,这让我相信这可能不是一部手机表现怪异的情况。

可以在此处查看崩溃的堆栈跟踪,并在GitHub 上查看整个代码。真的很奇怪,该应用在 Android Market 上的安装量超过 10 万,而且问题似乎只出现在 Galaxy Nexus 上。

任何提示或建议将不胜感激!

4

2 回答 2

6

我在 ICS 上看到了同样的错误,我通过禁用 keepAlive “修复”了它:

    System.setProperty("http.keepAlive", "false");
于 2012-04-13T13:00:12.067 回答
0

在我的应用程序开发过程中,我在 Xperia Arc S(注意!非 ICS)上看到了同样的问题。不过,我几乎可以肯定,我们看到了两个不同问题的相同症状。

在我的情况下,我将整个流作为 UTF8 读取,String但服务器端实现希望我将第一个字节作为数字读取,byte其余字节作为 UTF8读取String

我不确定为什么我真的得到了一个详细信息EOFException,但是阅读流,注意其中的自定义协议中的类型,解决了我的问题。

于 2011-12-17T10:49:03.057 回答