Ошибка WebView с помощью java.io.IOException: сбой закрытия: EIO (ошибка ввода-вывода) libcore.io.IoUtils.close (IoUtils.java:41)

У меня есть авария, загружаемая пользователями на Android 4.0 / 4.1, но я не могу воспроизвести ее. Журнал выглядит следующим образом:

java.io.IOException: close failed: EIO (I/O error) libcore.io.IoUtils.close(IoUtils.java:41) java.io.FileInputStream.close(FileInputStream.java:121) android.webkit.JWebCoreJavaBridge.nativeServiceFuncPtrQueue(Native Method) android.webkit.JWebCoreJavaBridge.handleMessage(JWebCoreJavaBridge.java:113) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loop(Looper.java:137) android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:949) java.lang.Thread.run(Thread.java:856) cause by: libcore.io.ErrnoException: close failed: EIO (I/O error) libcore.io.Posix.close(Native Method) libcore.io.BlockGuardOs.close(BlockGuardOs.java:75) libcore.io.IoUtils.close(IoUtils.java:38) java.io.FileInputStream.close(FileInputStream.java:121) android.webkit.JWebCoreJavaBridge.nativeServiceFuncPtrQueue(Native Method) android.webkit.JWebCoreJavaBridge.handleMessage(JWebCoreJavaBridge.java:113) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loop(Looper.java:137) android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:949) java.lang.Thread.run(Thread.java:856) 

Кто-нибудь знает, как это происходит или как его решить?

Solutions Collecting From Web of "Ошибка WebView с помощью java.io.IOException: сбой закрытия: EIO (ошибка ввода-вывода) libcore.io.IoUtils.close (IoUtils.java:41)"

Это происходит из-за файла только для чтения.

Я думаю, это связано с тем, что EIO поступает из bad_file_flush в ваш файл. Кажется, что когда ядро ​​имеет какой-либо отказ при доступе к файлу , он преобразует описание открытого файла в псевдо-открытый файл с bad_inode_ops в качестве файла ops. Я не могу найти код, который делает это для файловых систем на основе FAT, но, возможно, есть общий код.

Поскольку данные кеша FileChannel, я думаю, вам нужно вызвать force( ), прежде чем close() the FileChannel

Для получения дополнительной информации перейдите по ссылкам Link1

EIO происходит из bad_file_flush в bad_inode.c . Кажется, что у ядра есть некоторые проблемы при доступе к inode.

Причинами этого могут быть установка-размонтирование SD-карты или носителя данных, подключение USB по телефону.

Попробуйте вызвать force() перед close()