я получаю следующий стек при создании ZipFile как:Попадая ArrayOutOfBounds при создании ZipFile
final ZipFile zipFile = new ZipFile(mDownloadedFile);
Ошибка:
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=4096; regionStart=0; regionLength=-60060589
at java.util.Arrays.checkOffsetAndCount(Arrays.java:1731)
at libcore.io.IoBridge.read(IoBridge.java:427)
at java.io.RandomAccessFile.read(RandomAccessFile.java:290)
at java.util.zip.ZipFile$RAFStream.read(ZipFile.java:407)
at java.io.InputStream.read(InputStream.java:163)
at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:142)
at java.io.BufferedInputStream.read(BufferedInputStream.java:309)
at libcore.io.Streams.readFully(Streams.java:81)
at java.util.zip.ZipEntry.<init>(ZipEntry.java:353)
at java.util.zip.ZipFile.readCentralDir(ZipFile.java:365)
at java.util.zip.ZipFile.<init>(ZipFile.java:132)
at java.util.zip.ZipFile.<init>(ZipFile.java:103)
at xxx.android.task.xxTask.unzipFile(xxTask.java:250)
at xxx.android.task.xxTask.extract(xxTask.java:197)
at xxx.android.task.xxTask.doInBackground(xxTask.java:157)
at xxx.android.task.xxTask.doInBackground(xxTask.java:53)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
... 4 more
Я не могу сделать это, чтобы воспроизвести ошибку. Это просто где-то в мире, в реальном приложении, я получил эту ошибку через наш почтовый трекер.
Отрицательный регионLength = -60060589? Как это может быть возможным? Может ли это произойти, когда я пытаюсь создать файл с уже удаленным файлом на хранилище? Вроде: Загрузка - по какой-то причине и удаление файла - Загрузка снова - сбой.
EDIT: Файл mDownloadedFile - это файл, созданный до начала загрузки. В нормальном случае он создается с помощью нового, но в случае повтора (когда загрузка по какой-то причине была неудачной), он снова запускает задачу с файлом. Я удалил эту часть сейчас, потому что она не нужна, если это может быть ошибка, я исправил ее уже, но, возможно, кто-то знает что-то другое.
Некоторые фантазии? Благодаря
приятное воображение. но это часть андроида. ZipFile - это класс android. Кроме того, мои zip-файлы никогда не бывают такими большими. Они arround от 50mb до 200mb – Informatic0re
, но, возможно, он объединяет файлы, когда он создает новый файл из данного mDownloadedFile. И это закончится в действительно большом файле .. он объединяет файлы? – Informatic0re
'все мои zip-файлы никогда не бывают такими большими. Они размером от 50 до 200 мБ. Это может не относиться к пользователям, которые используют ваше приложение. Имеет планшет или S3, который позволяет хранить до 64 ГБ и хранить большие файлы, изменяет ситуацию. У пользователей могут быть большие аудио, видеофайлы и т. Д. ... –