AndroidX导致应用程序崩溃,显示SQLiteDiskIOException错误

3

我的安卓应用没有任何与数据库相关的代码,但是我仍然在应用中使用androidx出现了与数据库相关的崩溃问题。请帮我理解和解决这个问题。

Fatal Exception: android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 4874): , while compiling: PRAGMA journal_mode
       at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java)
       at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:897)
       at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:642)
       at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:323)
       at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:294)
       at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)
       at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:196)
       at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:464)
       at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:186)
       at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:178)
       at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:916)
       at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:893)
       at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:796)
       at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:1309)
       at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:268)
       at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
       at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
       at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:92)
       at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:53)
       at androidx.room.RoomDatabase.beginTransaction(RoomDatabase.java:328)
       at androidx.work.impl.utils.ForceStopRunnable.cleanUp(ForceStopRunnable.java:135)
       at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:79)
       at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:75)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
       at java.lang.Thread.run(Thread.java:818)

请问您能否发布您的清单(manifest)? - Reaz Murshed
1个回答

4

根据这个问题这个问题,您的磁盘空间可能已满。

WorkManager将作业信息存储在SQLite数据库中,这就是你发生崩溃的原因所在。

似乎WorkManager的未来版本(2.6.x)可能会提供更好的API来应对这种情况。


2
我正在面临这个问题。现在我们有v2.7.1,但我找不到任何新的API来处理它。 - Shivaraj Patil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接