No se ha podido crear la ventana del cursor desde la carpeta

1 Cursor cursor = contentResolver.query(MY_URI, new String[] { "first" }, null, null, null); 2 if (cursor != null) { 3 if (cursor.moveToFirst()) { 4 first = cursor.getString(cursor.getColumnIndex("first")); 5 cursor.close(); 6 } 7 } 

Luego en la línea # 3 (de acuerdo con los registros), de vez en cuando me encuentro con esta excepción (extracto a continuación):

 android.database.CursorWindowAllocationException: Cursor window could not be created from binder. at android.database.CursorWindow.<init>(CursorWindow.java:134) at android.database.CursorWindow.<init>(CursorWindow.java:41) at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:709) at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:707) at android.database.CursorWindow.newFromParcel(CursorWindow.java:718) at android.database.BulkCursorProxy.getWindow(BulkCursorNative.java:196) 

¿Alguna idea de por qué está lanzando esta excepción? ¡Gracias!

3 Solutions collect form web for “No se ha podido crear la ventana del cursor desde la carpeta”

Sospecho que el error puede estar relacionado con usted que no cierra sus cursores correctamente todo el tiempo. Tratar:

 1 Cursor cursor = contentResolver.query(MY_URI, new String[] { "first" }, null, null, null); 2 if (cursor != null) { 3 if (cursor.moveToFirst()) { 4 first = cursor.getString(cursor.getColumnIndex("first")); 5 } 6 cursor.close(); ///// Changed here 7 } 

El cursor siempre debe estar cerrado (independientemente de si está o no vacío). Asegúrese de que el resto de la aplicación también lo esté haciendo.

Pruebe de esta manera:

  if (cursor != null) { cursor.moveToFirst(); do { first = cursor.getString(cursor.getColumnIndex("first")); }while(cursor.moveToNext()); 

}

Prueba otro hilo

 new Thread(new Runnable(){ public void run(){ ...here all code }}); 

. Sin embargo, los códigos fuente de Android SDK parecen 4.0.2_r1

  130 private CursorWindow (origen de la parcela ) { 
131 mStartPos = fuente. ReadInt ();
132 mWindowPtr = nativeCreateFromParcel (fuente);
133 if (mWindowPtr == 0) {
134 throw new CursorWindowAllocationException ("La ventana del cursor no pudo ser"
135 + "creado de carpeta.");
136 }
137 mName = nativeGetName (mWindowPtr);
138 mCloseGuard.open ("close");
139 }

Donde mWIndowPtr es Int

  • No se pudo leer la fila 1, col -1 de CursorWindow. Asegúrese de que el cursor se inicialice correctamente antes de acceder a los datos de él
  • NullPointerException en el método restartLoader de LoaderManager
  • Ordenar los datos de la base de datos y mostrarlos en la vista de lista
  • Recuperar blob de gran tamaño de la base de datos Android sqlite
  • Panal y cursores (frustrado)
  • ¿Cómo funciona un cursor SQLite trabajar internamente?
  • Cómo filtrar ListView a través de EditText
  • Ventana del cursor: la ventana está llena
  • ¿Por qué este cursor está vacío?
  • ¿Usando SimpleCursorAdapter con Spinner?
  • Android: sólo muestra el cursor en edittext cuando se muestra el teclado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.