我正在使用Square的Tape库将数据上传到服务器。阅读QueueFile磁带时出现EOFException
队列以JSON格式存储在File中。当应用程序启动时,我启动队列并开始上传(即,如果使用Wifi)但是在用户的某些设备上,我看到EOFException
和'null'
消息(登录crashlytics)。
从现有文件创建FileObjectQueue
对象时发生错误 - 从调试信息收集实际文件为〜1MB。
任何想法是什么导致这种情况或如何防止它? - 也许我需要对我的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)
您使用的是什么版本的库? –
嘿杰克,使用磁带v1.2.1(更新问题),但只是检查更改日志,我看到可能是一个相关的修复“防止腐败时,扩大一个完全饱和的队列”,所以要试试1.2.2。 thx – scottyab
很酷。这正是我问的原因! –