code 4874 SQLITE_IOERR_SHMSIZE

Android  摘抄  2021年5月12日 pm12:23发布4年前 (2021)更新 城堡大人
127 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、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

周国平:心静是一种境界

人生最好的境界是丰富的安静。安静,是因为摆脱了外界虚名浮利的诱惑。丰富,是因为拥有了内在精神世界的宝藏。老子主张“守静笃”,任世间物在那里一齐运动,我只是静观其往复,如此便能成为万物运动的主人。这叫“静为躁君”。当然,人是不能只静不动的,即使能也不可取,如一潭死水。你的身体尽可以在世界上奔波,你...

博尔赫斯:我用什么才能留住你

我用什么才能留住你?我给你瘦落的街道、绝望的落日、荒郊的月亮。我给你一个久久地望着孤月的人的悲哀。 我给你我已死去的祖辈,后人们用大理石祭奠的先魂:我父亲的父亲,阵亡于布宜诺斯艾利斯的边境,两颗子弹射穿了他的胸膛,死的时候蓄着胡子,尸体被士兵们用牛皮裹起; ...

席慕容:独白

1把向你借来的笔还给你吧。一切都发生在回首的刹那。我的彻悟如果是缘自一种迷乱,那么,我的种种迷乱不也就只是因为一种彻悟?在一回首间,才忽然发现,原来,我的一生的种种努力,不过只是为了周遭的人都对我满意而已。为了要博得他人的称许与微笑,我战战兢兢地将自己套入所有的模式,所有的桎梏。走到中途,...

手动更新wordpress版本

由于某些原因,WordPress 下载的网站无法打开,导致更新一直失败,因此只好手动更新。一:最新版本WordPress5.3.2中文版:https://downloads.wordpress.org/release/zh_CN/wordpress-5.3.2.zip二、手动更新在服务器里删...

Android NDK配置简单记录

前言这里简单记录一下Android中使用DNK的配置,记录于此,方便自己查阅。流水账而已。环境:Windows11版本:android-ndk-r27-windows正文第一步如果没有下载就去官网《NDK 下载》下载吧,我这里下载当前最新的android-ndk-r27-windows...

佚名:人就这么一生,要学会把握自己

人就这么一生,要学会把握自己人这一辈子,有多少无可奈何,邂逅多少恩恩怨怨。可是想到人不就这么一辈子吗,有什么看不开的? 人世间的烦恼忧愁,恩恩怨怨几十年后,不都烟消云散了,还有什么不能化解,不能消气的呢? 人就这么一生,我们不能白来这一遭。所以让我们从快乐...