Intereting Posts
Прекратите бесконечную буферизацию видео html5 в веб-браузере cordova на устройствах Samsung Соединение сокета – Java добавляет байты Android-камера: onActivityResult () намерение имеет значение null, если у него есть дополнительные функции Что происходит с кодом JavaScript после приложения, скомпилировано с помощью Titanium Mobile Функция вызова и возврата функции Java в Android Как открыть AlertDialog с экрана предпочтений? Запуск автозапуска при загрузке телефона Ошибка в Samsung S4 «GetPTLAFormat: недопустимый формат» Android: снимать снимок камеры без подтверждения «сохранить» / «удалить» Повторное использование AndroidTV RowsFragment вне BrowseFragment Отформатируйте относительную дату в формате, удобочитаемом человеком, на Android, используя Android DateUtils API Ошибка при запуске андроида «Не удалось инициализировать SDK App Engine на пути (пути)» на eclipse 4.2.2 с использованием Mac OSX Mountain Lion Как я могу отобразить диалог из PreferenceFragment? Sms ContentObserver onChange () срабатывает несколько раз

Weird EOFException на Galaxy Nexus

Мое приложение Android использует URLConnection для подключения к веб-сервису. Это на рынке уже более года и работает неплохо. Однако проблемы с пользователями Galaxy Nexus появились недавно:

При получении входного потока (даже не чтения!) Из URLConnection например:

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

В getInputStream() EOFException .

Сначала я подумал, что это может быть проблема ICS, поэтому я установил раннюю версию моего Nexus S, но там я не смог воспроизвести проблему. Затем я получил доступ к Galaxy Nexus, который разбился так же, как и сообщения об ошибках, которые я получил, что заставляет меня поверить, что это, вероятно, не случай, когда один телефон действует странно.

Трассировку стека аварии можно увидеть здесь и весь код на GitHub . Это действительно странно, приложение имеет около 100k + установки на Android Market, и проблема, похоже, возникает только в Galaxy Nexus.

Любые подсказки или предложения были бы высоко оценены!

Я видел ту же проблему на моей Xperia Arc S (Note! Non-ICS) во время разработки моего приложения. Я почти уверен, что мы видим один и тот же симптом двух разных проблем.

В моем случае я читал весь поток как String UTF8, но реализация на стороне сервера ожидала, что я буду читать первый байт в виде числового byte а остальная часть – как String UTF8.

Я не уверен в деталях, почему я действительно получил EOFException , но, читая поток, обращая внимание на типы в пользовательском протоколе в нем, решил мою проблему.

Я вижу ту же ошибку в ICS, я «исправил» ее, отключив keepAlive:

  System.setProperty("http.keepAlive", "false");