这几天改bug,不小心改出这个问题来了 主要是操作了sqlite数据库,db.query的时候莫名奇妙的就抛出这个异常, 百度 google一直都找不到是什么原因导致的。试了在查询的时候 因为是多线程操作 也给db对象也上锁了。,,可是还是会有这个异常抛出来,各位兄弟们,有解决过这个问题的吗 可以给点建议吗

解决方案 »

  1.   

    多线程并发写操作造成,建议创建DAO对象,提供同步方式的api。所有数据库访问必须通过DAO对象来进行。
      

  2.   

    楼主,这个问题解决的怎么样了,现在我也碰到了这个问题,还没找到原因。
    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)
      

  3.   

    我解决了。。不过是一行行代码排除的。。用极光推送的sdk 有个resume方法 频繁的resume 就会这样估计是内存不足,或者对sqlite的操作太频繁就会这样,我当时是这样解决的,不过看见你的异常,应该是多线程的问题,试试在每个调用db的方法上 都给方法名上锁 试试。这个崩溃很莫名其妙的。。很难定位