Android SQL Lite no crece

Estamos creando una aplicación que sincroniza 5000 entradas de calendario con el servidor. El problema es que después de agregar 1913 entradas que no y dando el seguimiento de la pila siguiente. ¿Cuál es el problema?

 12-30 11: 48: 16.989: DEBUG / dalvikvm (384): GC_EXPLICIT liberado 5699 objetos / 345848 bytes en 579ms
 12-30 11: 48: 22.530: DEBUG / dalvikvm (232): GC_EXPLICIT liberó 2552 objetos / 124160 bytes en 311ms
 12-30 11: 48: 24.560: ERROR / CursorWindow (232): necesidad de crecer: mSize = 1048576, tamaño = 414, freeSpace () = 328, numRows = 1913
 12-30 11: 48: 24.599: ERROR / CursorWindow (232): no en crecimiento ya que ya hay 1913 fila (s), tamaño máximo 1048576
 12-30 11: 48: 24.599: ERROR / CursorWindow (232): La fila no, por lo que volver a la nueva fila de contabilidad de allocRowSlot 1912
 12-30 11: 48: 24.620: ERROR / Cursor (232): Error al asignar fieldDir en startPos 0 fila 1912
 12-30 11: 48: 27.340: DEBUG / Cursor (232): fila finish_program_and_get_row_count 3266
 12-30 11: 48: 28.070: ERROR / Calendar (Vikas) (384): excepción no captada en EasSyncServicejava.lang.NullPointerException
 12-30 11: 48: 28.089: ERROR / Calendar (Vikas) (384): La sincronización finalizó debido a una excepción.

La clase CursorWindow sólo admite la lectura de 1 MB de datos por consulta:

 #define MAX_WINDOW_SIZE (1024 * 1024) 

(Fuente)

Pruebe uno o más de los siguientes:

  • Solicite menos filas.
  • Solicite menos columnas.
  • Divida su consulta en consultas más pequeñas y ejecútelas una a la vez.

Una forma de mejorar la situación es almacenar la última fecha de sincronización en el servidor y sincronizar sólo los cambios que han ocurrido desde esa fecha.

 SELECT * FROM calendar WHERE modified > 'some date' 

Tuve el mismo problema, en mi caso se debió a una NullPointerException analizando la información TimeZone (por desgracia, la pila de seguimiento se pierde en el código).

Tal vez usted está afectado por el mismo problema.

Visita http://code.google.com/p/android/issues/detail?id=21435 , He abierto un problema de google, pero parece que no están interesados ​​en el problema. El problema está actualmente rechazado.

  • Base de datos Sqlite que actualiza una fila Android
  • ¿Preguntas con declaraciones preparadas en Android?
  • Compruebe que la base de datos sqlite está abierta o cerrada en android
  • Cómo insertar marca de tiempo en una columna de base de datos SQLite? Utilizando el tiempo de función ('ahora')?
  • Android, cómo ejecutar un archivo sql en sqlitedatabase
  • Cómo actualizar la columna con ORMLite
  • Lectura de transacciones no confirmadas en Android
  • Android cifrar / descifrar sqlite base de datos 100% seguro
  • Aplicación detenida en Android / SQLITE ERROR /
  • Android / SQLite: columnas de la tabla Insert-Update para mantener el identificador
  • Cómo leer la base de datos de otra aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.