我正在使用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
很酷。這正是我問的原因! –