android.database.sqlite.SQLiteDiskIOException: disk I/O error的异常问题
这几天改bug,不小心改出这个问题来了 主要是操作了sqlite数据库,db.query的时候莫名奇妙的就抛出这个异常, 百度 google一直都找不到是什么原因导致的。试了在查询的时候 因为是多线程操作 也给db对象也上锁了。,,可是还是会有这个异常抛出来,各位兄弟们,有解决过这个问题的吗 可以给点建议吗--------------------编程问答-------------------- 多线程并发写操作造成,建议创建DAO对象,提供同步方式的api。所有数据库访问必须通过DAO对象来进行。 --------------------编程问答-------------------- 我在每个调用db对象的地方 都加了一个对象锁 理论上应该避免了并发的原因呀,但是还是莫名奇妙的爆这个问题 --------------------编程问答-------------------- 楼主,这个问题解决的怎么样了,现在我也碰到了这个问题,还没找到原因。
10-30 11:47:14.997 E/AndroidRuntime( 1597): FATAL EXCEPTION: Thread-193
10-30 11:47:14.997 E/AndroidRuntime( 1597): android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 522)
10-30 11:47:14.997 E/AndroidRuntime( 1597): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:179)
10-30 11:47:14.997 E/AndroidRuntime( 1597): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
10-30 11:47:14.997 E/AndroidRuntime( 1597): at android.content.ContentProviderProxy.query(ContentProviderNative.java:385)
10-30 11:47:14.997 E/AndroidRuntime( 1597): at android.content.ContentResolver.query(ContentResolver.java:414)
10-30 11:47:14.997 E/AndroidRuntime( 1597): at android.content.ContentResolver.query(ContentResolver.java:357)
10-30 11:47:14.997 E/AndroidRuntime( 1597): at com.android.gallery3d.data.LocalAlbum.getMediaItemCount(LocalAlbum.java:232)
10-30 11:47:14.997 E/AndroidRuntime( 1597): at com.android.gallery3d.data.MediaSet.getTotalMediaItemCount(MediaSet.java:111) --------------------编程问答-------------------- 我解决了。。不过是一行行代码排除的。。用极光推送的sdk 有个resume方法 频繁的resume 就会这样。。。估计是内存不足,或者对sqlite的操作太频繁就会这样,我当时是这样解决的,不过看见你的异常,应该是多线程的问题,试试在每个调用db的方法上 都给方法名上锁 试试。这个崩溃很莫名其妙的。。很难定位
补充:移动开发 , Android