58

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)
4

1 に答える 1