android.database.sqlite.SQLiteDiskIOException: disk I/O error的异常问题

longzhanfeng 2013-09-10 10:21:56
这几天改bug,不小心改出这个问题来了 主要是操作了sqlite数据库,db.query的时候莫名奇妙的就抛出这个异常, 百度 google一直都找不到是什么原因导致的。试了在查询的时候 因为是多线程操作 也给db对象也上锁了。,,可是还是会有这个异常抛出来,各位兄弟们,有解决过这个问题的吗 可以给点建议吗
...全文
3004 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
longzhanfeng 2013-11-02
  • 打赏
  • 举报
回复
我解决了。。不过是一行行代码排除的。。用极光推送的sdk 有个resume方法 频繁的resume 就会这样。。。估计是内存不足,或者对sqlite的操作太频繁就会这样,我当时是这样解决的,不过看见你的异常,应该是多线程的问题,试试在每个调用db的方法上 都给方法名上锁 试试。这个崩溃很莫名其妙的。。很难定位
小土豆007 2013-10-30
  • 打赏
  • 举报
回复
楼主,这个问题解决的怎么样了,现在我也碰到了这个问题,还没找到原因。 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)
longzhanfeng 2013-09-11
  • 打赏
  • 举报
回复
我在每个调用db对象的地方 都加了一个对象锁 理论上应该避免了并发的原因呀,但是还是莫名奇妙的爆这个问题
iltgcl 2013-09-11
  • 打赏
  • 举报
回复
多线程并发写操作造成,建议创建DAO对象,提供同步方式的api。所有数据库访问必须通过DAO对象来进行。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧