i've got a crash log upload by users on Android 4.0/4.1,but i cant reproduce it.the log is like this:
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)
does anyone know how it happen?or how to solve it?
This is happen due to the read only file.
I think this is due to the EIO comes from bad_file_flush in your file. It seems when the kernel has any failure accessing an file, it transforms the open file description to a pseudo-open-file of with bad_inode_ops as its file ops. I can't find the code that does this for FAT-based file systems, but perhaps there's some generic code.
Since the FileChannel cache data I think you need to call force() before you close() the FileChannel
For more information go through this links Link1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With