4

私のAndroidアプリケーションは、WebURLConnectionサービスへの接続に使用します。それは1年以上市場に出ており、非常にうまく機能しています。ただし、GalaxyNexusユーザーに関する問題が最近発生しました。

以下から入力ストリームを取得する場合(まだ読み取っていません!)URLConnection

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

EOFExceptionスローされgetInputStream()ます。

最初はこれがICSの問題かもしれないと思ったので、Nexus Sに初期のビルドをインストールしましたが、そこで問題を再現できませんでした。それから私はGalaxyNexusにアクセスしました。これは、受け取ったバグレポートと同じようにクラッシュします。これは、おそらく1台の電話がおかしな動作をしているわけではないと信じています。

クラッシュのスタックトレースは、ここGitHubのコード全体で確認できます。それは本当に奇妙です、アプリはAndroidマーケットに約10万以上のインストールがあり、問題はギャラクシーネクサスでのみ発生するようです。

ヒントや提案をいただければ幸いです。

4

2 に答える 2

6

ICSでこれと同じエラーが発生します。キープアライブを無効にすることで、これを「修正」しました。

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

アプリの開発中に、Xperia Arc S(注!非ICS)で同じ問題が発生しました。ただし、2つの異なる問題の同じ症状が見られることはほぼ確実です。

私の場合、ストリーム全体をUTF8として読み取ってStringいましたが、サーバー側の実装では、最初のバイトを数値として読み取り、byte残りをUTF8として読み取ることを期待していましたString

なぜ本当に取得したのか詳細はわかりませんEOFExceptionが、ストリームを読んで、その中のカスタムプロトコルのタイプに注意を払うことで、問題は解決しました。

于 2011-12-17T10:49:03.057 に答える