Android SQLite CursorWindowAllocationException 崩溃

2024-04-06

当我发出多个cursor.moveToNext() 请求时,我的程序崩溃了。错误消息如下:

android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=773 (# cursors opened by this proc=773)
at android.database.CursorWindow.<init>(CursorWindow.java:112)
at android.database.CursorWindow.<init>(CursorWindow.java:100)
at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)
at android.database.sqlite.SQLiteCursor.clearOrCreateWindow(SQLiteCursor.java:364)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:162)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:156)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:161)
at android.database.AbstractCursor.moveToNext(AbstractCursor.java:209)
at net.cunniman.teacherplannerlite.SchoolClassDataSource.getClassForDayView(SchoolClassDataSource.java:173)
at net.cunniman.teacherplannerlite.DayView.getSchoolClasses(DayView.java:200)
at net.cunniman.teacherplannerlite.DayView.displayDate(DayView.java:176)
at net.cunniman.teacherplannerlite.DayView.plusDay(DayView.java:287)
at net.cunniman.teacherplannerlite.DayView.onClick(DayView.java:93)
at android.view.View.performClick(View.java:3565)
at android.view.View$PerformClick.run(View.java:14165)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
at dalvik.system.NativeStart.main(Native Method)

try {
    this.openForRead();
    for (int day_counter = 0; day_counter < DAY_PERIOD.length/2; day_counter++)
    {
        Cursor cursor = database.rawQuery
            ("SELECT " + NAME + " FROM " + TABLE_NAME + " WHERE " + DAY_PERIOD[day_counter * 2]
            + " = '" + day + "' AND " + DAY_PERIOD[day_counter * 2 + 1] + " = "
            + Integer.toString(period), null);


    while (cursor.moveToNext())
    {
        String name = cursor.getString(0);
        sc.setName(name);
    }


} finally {
    this.close();
}

有谁知道可能导致此问题的原因 - 似乎是内存泄漏(也许?),但有没有办法可以防止它发生?

Thanks


导致此错误的最常见原因是未关闭游标。确保在使用后关闭所有游标(即使出现错误)。

Cursor cursor = null;
try {
    cursor = db.query(...
    // do some work with the cursor here. i.e.:
    while (cursor.moveToNext())
    { .... }
} finally {
    // this gets called even if there is an exception somewhere above
    if(cursor != null)
        cursor.close();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android SQLite CursorWindowAllocationException 崩溃 的相关文章

  • Realm 中的更新语句

    I have VisitingCardPOJO表格 我想更新单个条目说在哪里no 3 VisitingCardPOJO java public class VisitingCardPOJO extends RealmObject Prima
  • Android中如何通过ViewModel类在Activity和Fragment之间共享数据?

    我想知道是否可以传递一个在 Activity 类中声明的字符串数据 并将该字符串数据传递给 ViewModel 类 然后将数据传递给 Fragment 类 视图模型类 class TimeTableViewModel extends Vie
  • 在 Android 中从麦克风录制 wav 文件 - 问题

    我需要能够使用 Android 中的麦克风创建 WAV 文件 目前 我遇到了很多麻烦 到目前为止 这就是我的情况 我正在使用 micDroid 项目代码的一部分来记录 read thread int sampleRate 44100 int
  • 制作一个包含自定义对象列表的可分割类

    我在使列表对象可解析时遇到错误 我认为读取对象时发生错误 这是我的代码 public class TestSample implements Parcelable int intValue String stirngValue privat
  • 使用 NEON 内在函数除以浮点数

    我当时正在处理四个像素的图像 这是在armv7对于 Android 应用程序 我想分一个float32x4 t向量由另一个向量组成 但其中的数字与大约不同0 7 to 3 85 在我看来 除法的唯一方法是使用右移 但这是针对一个数字2 n
  • android ndk 多点触控?

    我正在编写一个仅使用本机代码的应用程序 那么ndk中是否可以获取多点触控事件呢 我感觉我已经搜索了整个网络 但什么也没找到 有谁知道如何做到这一点 是的 您可以检查名为native activity查看如何获取输入事件 寻找engine h
  • 如何实现 ALTER TABLE 的示例[重复]

    这个问题在这里已经有答案了 我已经多次问过这个问题 但尚未得到完整的答案 如何实现 ALTER TABLE 语句以向数据库添加列 有人可以给我举个例子吗 请阅读SQLite ALTER TABLE 参考 http sqlite org la
  • 带有图层列表的自定义背景以显示对角线?

    我只想创建一个自定义背景 但我不知道如何使用 xml 而不是图像来做到这一点 这是 XML
  • Monodroid 示例/带有源代码的小部件

    我是一名 NET 开发人员 我对用 C 开发 Android 应用程序感兴趣 并且我得到了 monodroid 是否有任何来源可以让我获得 monodroid 示例应用程序 带有源代码 这将帮助我在 monodroid 中开发应用程序 或者
  • 将 android 蓝牙客户端套接字连接到 ubuntu 服务器套接字时出现问题

    我正在编写一个 Android 应用程序 它应该通过蓝牙与服务器交换数据 服务器端位于运行 Ubuntu 的 PC 上 使用 bluez 库 用 C 或 C 编写 当我尝试连接到 PC 上的服务器套接字时 我的 Android 应用程序失败
  • 在 android studio 中找不到 SDK 位置

    我刚刚在 android studio 中导入了我的 eclipse 项目 我一直这么说 Error SDK location not found Define location with sdk dir in the local prop
  • 表面视图+gl表面视图+框架布局

    我是 java 和 OpenGL 的新手 我正在尝试获得一个相机预览屏幕 能够 同时显示 3D 对象 浏览完样本后 api 演示 我想结合示例的代码 api 演示就足够了 但不知何故它不起作用 迫使我 启动时关闭 错误被称为空指针 例外 有
  • 将非 Android 项目添加到 Android 项目

    我在 Eclipse 中有三个项目 Base Server 和 AndroidClient Base和Server是Java 1 7项目 而AndroidClient显然是一个android项目 基础项目具有在服务器和 Android 客户
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 带有 backstack Resume 的嵌套片段

    在我的应用程序中有几个fragments in an activity我正在维护一个backStack对于这些fragment 一切都很好 但其中有一个嵌套的片段 当我把它放入backStack然后再次按后退按钮恢复 该片段看起来与先前的内
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • Jetpack Compose 中复选框中的透明复选标记

    在我的 Compose 应用程序中 我需要创建一个圆形复选框 我已经通过下面的代码实现了这一点 Composable fun CircleCheckBox isChecked Boolean modifier Modifier Modifi
  • Android 4.4 Kitkat 自定义视图操作栏未填充整个宽度

    我试图拥有一个带有自定义视图的简单操作栏 但我得到以下结果 为了演示 我创建了一个带有黄色背景颜色的简单 xml 它应该占据整个宽度 这是 XML
  • Android:分配内存失败

    我正在尝试创建一个具有 2047 mb 内存的模拟器 当我运行它时 我收到此错误 2011 02 22 14 24 14 Emulator 2011 02 22 14 24 14 Emulator This application has
  • 在线性布局内的 ScrollView 内并排对齐 TextView

    我有一个带有滚动视图的线性布局 我想保留它的当前格式 但只需将 textView2a 和 textView3a 并排放置 而不会破坏我当前的布局格式 我已经包含了我最近的尝试 但它们似乎不正确 提前致谢 Java菜鸟 当前有效的 XML

随机推荐

  • 如何使用 React-Native-FS 进行 mkdir

    我正在尝试向我的 RN 应用程序添加功能 该功能将允许用户在手机的文件系统中创建新目录 我尝试编写代码 以便该函数在路径 storage emulated 0 AppName NewFolder 中创建一个目录 因为 storage emu
  • Java 相当于 session_start()、session_destroy() 和 $_SESSION['username']

    在 PHP 中 当用户登录她的帐户时 我会执行以下操作 以便在用户浏览网站时记住该用户 session start SESSION username username 在可能需要敏感数据的任何其他页面上 我检查 SESSION userna
  • Ratchet PHP - 推送消息服务

    我使用 Ratchet 查看的大多数示例都是针对聊天服务的 我目前正在构建一个应用程序 用户可以在其中登录并根据其用户 ID 从服务器接收通知 我有基本的教程 但是我很难理解以下几点 当 的时候onOpen 方法被调用 我设置了 conn对
  • R 中出现重复值并返回以逗号分隔的唯一值

    我在 R 中有以下数据框 Number ship no 4432 1 4432 2 4564 1 4389 5 6578 6 4389 3 4355 10 4355 10 我想找到重复的Number以独特的方式重复ship no Numbe
  • requests.exceptions.SSLError: [Errno 2] 没有这样的文件或目录

    我正在使用一个名为 Tweetpony 的 python 库 一切正常 除了当我使用 Pyinstaller 打包我的脚本时 我在执行时收到以下错误 Traceback most recent call last File
  • 找不到在 64 位 Windows 上运行 32 位应用程序的 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId

    确实如标题 在 regedit 中查看键值存在 但 Wow6432 键 HKLM SOFTWARE Wow6432Node Microsoft Windows NT CurrentVersion 没有此键 这意味着 32 位应用程序无法在我
  • Xpath 仅选择属性的一部分

    if dt id returns comment 34232 or comment 12我怎样才能让它返回34232 or 12 换句话说 替换 comment with and if span style returns width 80
  • HTML5 音频播放器中的搜索不一致

    我想从特定时间戳开始播放音频 但我什至无法让最简单的例子正常工作 我尝试了以下方法 并进行了修改w3school 的例子 http www w3schools com tags tryit asp filename tryhtml5 av
  • htaccess 301 重定向 htaccess 或 php

    我在 Htaccess 中有一个动态 URL 重写规则 如下所示 RewriteRule cartoon html fm cart new r id 1 location 2 L 此规则导致 URL 为http localhost fm c
  • 如何在 Windows 上升级 pgAdmin 4?

    我安装了 pgAdmin 4 作为 Windows 的 postgres 安装程序的一部分 pgAdmin 现在告诉我有一个更新的版本 我有 4 8 gt 4 5 但是 我没有看到内置的升级功能 当我下载并运行 pgAdmin 4 安装程序
  • C++ 重复符号

    Mac 我尝试过命名空间 包括警卫 编译指示一次等 基本上 这是结构 CMakeLists txt add executable Game Game main cpp Game rtexture cpp 游戏 main cpp includ
  • Google 新闻 rss 参数 num 100 仅返回 30 个结果

    我用来从谷歌新闻获取结果的链接 它工作正常 但我得到的结果数量存在问题 当 num 参数超过 30 时 无论数量多少 num 参数最多返回 30 个结果 谷歌是否改变了它给出的结果数量 如果是的话有没有任何文档 提前致谢 根据source
  • 如何使用 pandas 将多行字符串合并为一行?

    我有一个包含多行的 DataFrame 有什么方法可以将它们组合成一个字符串吗 例如 words 0 I will hereby 1 am gonna 2 going far 3 to 4 do 5 this 预期输出 I will her
  • 查找与区域设置相关的一周的第一天

    给定一个NSDate 在给定用户的区域设置的情况下 如何找到该日期一周的第一天 例如 我听说有些国家将星期一视为一周的第一天 而其他国家则将星期日视为一周的第一天 在第一种情况下我需要返回前一个星期一 在后一种情况下我需要返回前一个星期日
  • 具有多个命名空间的 DataContractSerializer

    我正在使用 DataContractSerializer 将对象序列化为 XML 主要对象是SecurityHolding 其命名空间为 http personaltrading test com http personaltrading
  • 如何修改codeigniter中的路由

    帮我解决这个问题 举个例子 我有这个正常的网址 localhost CI index php base storeurl 我怎样才能让 Codeigniter 知道要寻找 本地主机 CI storeurl 我有一个名为index 的函数 它
  • Struts 2/ Foundation 5 - ModelDriven 类和文件上传

    我是 Java 编程新手 我正在尝试创建一个带有表单等的基本网页来下订单 在参加了几次工作会议后 我决定使用 Struts 2 我还使用 zurb Foundation 5 来实现响应式 UI 我能够创建一个 HTML 网页和一个带有文本字
  • 使用媒体播放器的 Android http 直播流媒体 URL

    我正在尝试播放一个网址 但它没有播放 我使用的代码如下 logcat 显示 Mediaplayer 错误 1 1002 开始状态为 0 且错误 38 0 为什么 我哪里出错了 你能帮我看看怎么玩吗 import java io IOExce
  • 运行高优先级 sshd 进程,而不将该优先级继承给子进程

    我使用以下命令给 sshd 进程赋予最高优先级 nice n 20 sbin sshd 但默认情况下它也会给子进程 bin sh 最高优先级 那么 是否可以为子进程赋予普通优先级 0 而不是最高优先级 假设此 sshd 是 OpenSSH
  • Android SQLite CursorWindowAllocationException 崩溃

    当我发出多个cursor moveToNext 请求时 我的程序崩溃了 错误消息如下 android database CursorWindowAllocationException Cursor window allocation of