Square의 Tape 라이브러리를 사용하여 데이터 업로드를 서버에 대기 중입니다.QueueFile 테이프를 읽을 때 EOFException이 발생했습니다.
대기열은 JSON 형식의 파일에 저장됩니다. 앱이 시작될 때 대기열을 초기화하고 업로드를 시작합니다 (예 : Wi-Fi의 경우).하지만 사용자의 일부 기기에서 과 메시지가 표시됩니다 (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
차가움. 그게 정확히 내가 물어 본 이유야! –