android.database.CursorWindowAllocationException when moving a Cursor

I’am using an SQLite database and I regularly get runtime errors I can’t find the origin of. After a query, I use moveToFirst to point on the first record retrieved and this sometimes triggers an android.database.CursorWindowAllocationException exception. Added to this exception is the following sentence : “Cursor window allocation of 2048kb failed.# open Cursors=736 (#cursors opendby this proc=736)”.

In the Android documentation, I haven’t found anything related to this exception yet. Does anyone know it’s cause and a way to avoid it?

  • How to launch an Activity without a UI?
  • Android Espresso check selected spinner text
  • Using default ShapeDrawable in a StateListDrawable in Android 4.2
  • Custom global Application class breaks with “android.app.Application cannot be cast to”
  • Ajax post not working - Jquery Phonegap Android
  • Why doesn't Android appear in Eclipses' preferences?
  • Related posts:

    How to install an apk on the emulator in Android Studio?
    Take a screenshot of a whole View
    IAB startSetup NullPointerException
    Android, How can I Convert String to Date?
    Android - Formatter.formatIPAddress deprecation with API 12
    Extract bitmap from video in android
  • android capture video frame
  • runOnUiThread vs Looper.getMainLooper().post in Android
  • android: how to register my app as “camera app”
  • Android: How to get background color of Activity in Java?
  • View outside bounds not drawing properly
  • ADT (Eclipse) vs. Android Studio: How much APK file size difference is normal?
  • One Solution collect form web for “android.database.CursorWindowAllocationException when moving a Cursor”

    This error is nearly always due to not closing a cursor when it’s finished with. Every time you open a cursor, memory is required to map the data that cursor represents and that memory cannot be released until the cursor is closed. There is a limit to the amount of memory available for this purpose so if cursors are not closed and an application continues to open new ones, this error is likely to occur at some point.

    I recommend you examine your code to make sure that all cursors created are being closed at some point. Also take care with any code that opens a cursor within a loop – your error message says ‘open Cursors=736’ which suggests a lot of cursor activity within a loop of some sort.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.