Square のTapeライブラリを使用して、サーバーへのデータのアップロードをキューに入れています。
キューは JSON 形式で File に保存されます。アプリが起動すると、キューを初期化してアップロードを開始します (つまり、Wifi の場合)。ただし、ユーザーの一部のデバイスではEOFException
、'null'
メッセージが表示されます (crashlytics にログインしています)。
エラーはFileObjectQueue
、既存のファイルからオブジェクトを作成するときに発生します - デバッグ情報から収集した実際のファイルは ~1MB です。
これを引き起こしている原因、またはそれを防ぐ方法はありますか? - たぶん、java.io のほこりを払う必要があります。
編集:Tape 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)