首页 > 解决方案 > IllegalStateException:设备上的文件系统处于错误状态。WorkManager 无法访问应用程序的内部数据存储

问题描述

我的应用程序打不开。当我尝试打开应用程序时,它会立即关闭并出现以下崩溃。

它仅在一台设备 Redmi note 10s 中发生。(Android 11)

Workmanager 似乎有问题,但没有找到任何解决方案

The file system on the device is in a bad state. WorkManager cannot access the app's internal data store.Error Message: The file system on the device is in a bad state. WorkManager cannot access the app's internal data store.StackTracejava.lang.IllegalStateException: The file system on the device is in a bad state. WorkManager cannot access the app's internal data store.
    at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:120)
    at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:923)
    Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: Cannot open database '/data/user/0/study.pedagogy.android/no_backup/androidx.work.workdb': Directory /data/user/0/study.pedagogy.android/no_backup doesn't exist
    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:252)
    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205)
    at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:505)
    at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206)
    at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:198)
    at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:918)
    at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:898)
    at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:762)
    at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:751)
    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:373)
    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
    at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:145)
    at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:106)
    at androidx.room.RoomDatabase.inTransaction(RoomDatabase.java:622)
    at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.java:399)
    at androidx.work.impl.model.SystemIdInfoDao_Impl.getWorkSpecIds(SystemIdInfoDao_Impl.java:120)
    at androidx.work.impl.background.systemjob.SystemJobScheduler.reconcileJobs(SystemJobScheduler.java:284)
    at androidx.work.impl.utils.ForceStopRunnable.cleanUp(ForceStopRunnable.java:199)
    at androidx.work.impl.utils.ForceStopRunnable.forceStopRunnable(ForceStopRunnable.java:165)
    at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:102)
    ... 4 more
    Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14 SQLITE_CANTOPEN): Could not open database
    at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:224)
    ... 23 more

标签: javaandroidkotlinandroid-workmanagerandroid-database

解决方案


推荐阅读