Intereting Posts
При запуске в режиме отладки приложение Android перестает работать Сканировать папку с файлами в android для путей к файлам Преобразование пикселей в dp TypeArray в Android – Как сохранить пользовательские объекты в xml и получить их? Android: IllegalStateException («Вы не можете установить Dialog OnCancelListener или OnDismissListener») Android getListView () в ошибке фрагмента Удалить будильник из AlarmManager с помощью функции cancel () – Android Использование сертификатов клиент / сервер для двухсторонней аутентификации SSL-сокета на Android Кордова запускает андроид: ANDROID_HOME не установлен и андроид не на моем пути Как запретить Android делать снимок экрана, когда мое приложение переходит на задний план? Как я могу получить результаты сканирования Android Wifi в список? Производительность Android – «Избегайте внутренних Getters / Setters» NextFocusDown не работает с AutoCopmleteTextView Просмотреть getX () и getY () вернуть 0.0 после того, как они были добавлены в Activity Анализатор SAX против синтаксического анализа XMLPull

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