首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于错误-13,安卓工作管理器CursorWindowAllocationException的大小无法分配CursorWindow 4194304

由于错误-13,安卓工作管理器CursorWindowAllocationException的大小无法分配CursorWindow 4194304
EN

Stack Overflow用户
提问于 2021-03-26 11:10:12
回答 1查看 452关注 0票数 1

如果有人遇到过类似的问题。将非常感谢您提供的解决方案

使用的组件:使用的版本: android.arch.work:work-runtime:architectureWork:1.0.1

下面是错误日志:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-03-26 14:53:51

问题似乎是它无法获得4M (4194304字节)的CursorWindow。我怀疑不是因为没有足够的内存,而是它无法分配文件,可能是因为剩余的文件句柄不足。

我会查看您的代码,并确保您在使用游标时(使用Cursor close方法)关闭了游标,特别是在循环中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66810507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档