【发布时间】:2021-06-22 21:39:54
【问题描述】:
如果有人遇到类似问题。将不胜感激的解决方案
使用的组件: 使用的版本:android.arch.work:work-runtime:architectureWork:1.0.1
有错误日志:
android.database.CursorWindowAllocationException:
at android.database.CursorWindow.nativeCreate (CursorWindow.java)
at android.database.CursorWindow.<init> (CursorWindow.java:145)
at android.database.sqlite.SQLiteCursor.clearOrCreateWindow (SQLiteCursor.java:319)
at android.database.sqlite.SQLiteCursor.fillWindow (SQLiteCursor.java:159)
at android.database.sqlite.SQLiteCursor.getCount (SQLiteCursor.java:152)
at androidx.work.impl.model.WorkSpecDao_Impl.getAllUnfinishedWork (WorkSpecDao_Impl.java:1203)
at androidx.work.impl.WorkerWrapper.resolve (WorkerWrapper.java:427)
at androidx.work.impl.WorkerWrapper.resetPeriodicAndResolve (WorkerWrapper.java:561)
at androidx.work.impl.WorkerWrapper.handleResult (WorkerWrapper.java:447)
at androidx.work.impl.WorkerWrapper.onWorkFinished (WorkerWrapper.java:335)
at androidx.work.impl.WorkerWrapper$2.run (WorkerWrapper.java:310)
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:919)
android.database.CursorWindowAllocationException: Could not allocate CursorWindow '/data/user/0/com.testapp/databases/androidx.work.workdb' of size 4194304 due to error -13.
android.database.CursorWindow.nativeCreate(:-2)
android.database.CursorWindow.<init>(CursorWindow.java:145)
android.database.sqlite.SQLiteCursor.clearOrCreateWindow(SQLiteCursor.java:319)
android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:159)
android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:152)
android.database.AbstractCursor.moveToPosition(AbstractCursor.java:232)
android.database.AbstractCursor.moveToFirst(AbstractCursor.java:271)
be.b(SourceFile:16) (be = androidx.work.impl.model.WorkSpecDao_Impl)
androidx.work.impl.q.k(SourceFile:2)
androidx.work.impl.q.h(SourceFile:54)
androidx.work.impl.q.run(SourceFile:3)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:919)
【问题讨论】:
-
现在是 2021 年,你不应该再使用 `android.arch.work` 或支持库了。在这一点上,您实际上已经过时多年,并且没有得到任何错误修复。您需要切换到 AndroidX。
标签: android multithreading sqlite android-room android-workmanager