Intereting Posts
Установите цвет фона для выбранного элемента ListView в android Как получить индекс текста, выбранного в AutoCompleteTextView Android Facebook Api Exception – remote_app_id не соответствует сохраненному идентификатору LocationManager слишком часто вызывает onLocationChanged? Несколько вызовов getView () в GridView Как перемещать макет, когда отображается мягкая клавиатура Android Как я могу поворачивать отображение только в ландшафтном режиме в android? Запуск приложения в фоновом режиме Как сделать округленный TextView в Android? Android Studio – с Junit 4.12 "!!! Ожидается, что версия JUnit версии 3.8 или более поздней версии: Как загрузить изображение с SD-карты с помощью библиотеки Picasso Nine-Patch Drawable vs Shape Drawable. Что должно быть предпочтительнее? Как обращаться с изменениями ориентации экрана, когда есть asyntask, работающая с android 4.x Матричные преобразования OpenGL ES Android Как добавить строку в нижней части счетчика, как, например, edittext в android

EOFException при чтении ленты QueueFile

Я использую библиотеку Square's Tape для очереди на загрузку данных на сервер.

Очередь сохраняется в файле в формате JSON. Когда приложение запускается, я запускаю очередь и начинаю загрузку (т.е., если на Wifi). Однако на некоторых устройствах у пользователей я вижу EOFException с сообщением 'null' (зарегистрировано в crashlytics).

Ошибка возникает при создании объекта FileObjectQueue из существующего файла – из сбора информации об отладке фактический файл составляет ~ 1 МБ.

Любые идеи, что вызывает это или как предотвратить это? – Возможно, мне нужно пылесосить на java.io.

Изменить: использование ленты v1.2.1

 Caused by: java.io.EOFException at java.io.RandomAccessFile.readFully(RandomAccessFile.java:419) at java.io.RandomAccessFile.readInt(RandomAccessFile.java:439) at com.squareup.tape.QueueFile.readElement(:182) at com.squareup.tape.QueueFile.readHeader(:162) at com.squareup.tape.QueueFile.(:110) at com.squareup.tape.FileObjectQueue.(:35) at com.myapp.queue.MyUploadTaskQueue.create(:125) 

Обновлено – также видя эту ошибку с момента обновления до 1.2.2

 Caused by: java.io.IOException: File is corrupt; length stored in header is 0. at com.squareup.tape.QueueFile.readHeader(:165) at com.squareup.tape.QueueFile.<init>(:117) at com.squareup.tape.FileObjectQueue.<init>(:35) 

Solutions Collecting From Web of "EOFException при чтении ленты QueueFile"

EOFException показывает, что End Of File достигнут, то есть больше нет байтов для чтения. Это исключение – еще один способ сообщить, что читать больше нечего, тогда как другие методы возвращают значение, например -1. Как вы можете видеть в трассировке стека ошибок, методы, бросающие исключение, – это методы чтения; java.io.RandomAccessFile.readFully(RandomAccessFile.java:419) и com.squareup.tape.QueueFile.readHeader(:165) . Таким образом, он не может быть «предотвращен», если вы не прочитаете все байты (которые вы обычно хотите), просто поймайте его так; catch(EOFException e) { /* ignore */ } 🙂 https://docs.oracle.com/javase/7/docs/api/java/io/EOFException.html