studio example evaluatejavascript android android-webview webviewclient

android - example - webview evaluatejavascript



WebView Crash by java.io.IOException: cierre fallido: EIO(error de E/S) libcore.io.IoUtils.close(IoUtils.java:41) (2)

EIO se produce desde bad_file_flush en bad_inode.c . Parece que el kernel tiene algún problema para acceder a inode.

Las razones de esto pueden ser el montaje, desmontaje de la tarjeta SD o los medios de almacenamiento, conectando el USB al teléfono.

Intente llamar a force() antes de close()

Tengo un registro de bloqueo cargado por los usuarios en Android 4.0 / 4.1, pero no puedo reproducirlo. El registro es así :

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)

¿Alguien sabe cómo sucedió o cómo resolverlo?


Esto es debido al archivo de solo lectura.

Creo que esto se debe a que el EIO proviene de bad_file_flush en su archivo. Parece que cuando el kernel tiene algún error al acceder a un archivo , transforma la descripción del archivo abierto en un archivo pseudo-abierto con bad_inode_ops como sus operaciones de archivo. No puedo encontrar el código que hace esto para los sistemas de archivos basados ​​en FAT, pero quizás haya algún código genérico.

Dado que los datos de la caché de FileChannel creo que necesitas llamar a force( ) antes de close() the FileChannel

Para más información ir a través de estos enlaces Link1