code 4874 SQLITE_IOERR_SHMSIZE

Android  摘抄  2021年5月12日 pm12:23发布3年前 (2021)更新 91es.com站长
104 0 0

前言

最近使用SQLite,出现一些问题,因此整理于此,也摘抄了网上的其他问题。

好记性不如烂笔头

正文

code 4874

disk I/O error (code 4874 SQLITE_IOERR_SHMSIZE)

最近使用SQLite,出现如下异常。

SQLiteLog: (4874) disk I/O error
SQLiteLog: (4874) os_unix.c:35328: (28) write(/data/user/0/com.media.scanner/databases/udisk.db-shm) -
SQLiteDatabase: Failed to open database '/data/user/0/com.media.scanner/databases/udisk.db'.
SQLiteDatabase: android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 4874 SQLITE_IOERR_SHMSIZE): , while compiling: PRAGMA journal_mode
SQLiteDatabase: 	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
SQLiteDatabase: 	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:903)
SQLiteDatabase: 	at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:648)
SQLiteDatabase: 	at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:333)

出现异常后,导致数据无法写入。

通过查找前后日志,发现/data空间不足了,导致数据库无法打开错误。

DropBoxManagerService: java.io.IOException: write failed: ENOSPC (No space left on device)
DropBoxManagerService: Caused by: android.system.ErrnoException: write failed: ENOSPC (No space left on device)
epo     : epo.c curl_easy_download 1266 fopen /data/vendor/gps/QEPOHAL.DAT failed.errno:28, reson: No space left on device
installd: Device /data has 0 free; requested 204664012; needed 204664012
installd: Refusing to clear cached data in reserved space
installd: Failed to free up 204664012 on /data; final free space 0: Success

出现“No space left on device”和“Failed to free up”等表示这个设备的/data分区已经满了。后面发现,我这是开启日志保存等功能,把data目录写满了。

code 1802

SQLiteDiskIOException: disk I/O error (code 1802)

原因:

存储空间不足、文件读写权限不够,或者多线程操作(SQLite不支持多线程同时操作,自己枷锁)

code 3850

SQLiteDiskIOException: disk I/O error (code 3850)

原因:

报此异常,一般就是多线程操作数据库时逻辑上的问题导致了锁异常。

参考文章

  1. 数据库异常android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 1802)

 历史上的今天

  1. 2023: TextView走马灯重复走问题(0条评论)
  2. 2022: ViewPager出现pointerIndex out of range(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

PhoneStatusBar初始化分析

接上一篇《SystemUI源码分析之PhoneStatusBar启动流程简单分析》,我们简单的了解了是怎么启动PhoneStatusBar的,同时也知道在PhoneStatusBar的start()方法中主要执行了如下几个步骤:一、createAndAddWindows()二、addN...

Android跳转WIFI界面的几种方式

前言简单记录一下Android跳转WiFi设置界面的启动方式。PS: 本文摘抄的,方便自己查阅。正文下面几种方式在Android P上测试OK。第一种try { Intent intent = new Intent(); intent.setAction("androi...

Fragment already added

前言项目中会用Viewpager+Fragment来显示图片,先项目中测试ok,但是我单独拎出来做简单调试时出现:java.lang.IllegalStateException: Fragment already added: PlayFragment尴尬了,就我拎出来的demo代码片段有...

普希金:我曾经爱过你

我曾经爱过你:爱情,也许在我的心灵里还没有完全消亡,但愿它不会再打扰你,我也不想再使你难过悲伤。我曾经默默无语、毫无指望地爱过你,我既忍受着羞怯,又忍受着嫉妒的折磨,我曾经那样真诚、那样温柔地爱过你,但愿上帝保佑你找到的另一个人如我一样地爱你。...

川端康成:花未眠

我常常不可思议地思考一些微不足道的问题。昨日一来到热海的旅馆,旅馆的人拿来了与壁龛里的花不同的海棠花。我太劳顿,早早就人睡了。凌晨四点醒来,发现海棠花未眠。发现花未眠,我大吃一惊。有葫芦花和夜来香,也有牵牛花和合欢花,这些花差不多都是昼夜绽放的。花在夜间是不眠的。这是众所周知的事。可我仿佛才明白过...

Kotlin字符串

前言简单记录一下Kotlin字符串。主要是方便自己查阅。正文字符串一个字符串可以包含一个或者多个字符,也可以不包含任何字符,即长度为0。var mString: String = "谷歌一下"var mString2 = "百度一下"遍历字符串遍历也是很多种,下面列举验证过的遍历...