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.

  • ¿Cómo comprobar si existe una tabla en Android?
  • Android: ¿Cómo acceder a una sola base de datos de múltiples actividades en la aplicación?
  • SQLite y almacenamiento de imágenes
  • Problema con SQL Query Android Where Clause
  • Android cursor cómo obtener valores nulos de columnas
  • Active Android es propenso a las inyecciones de SQL. ¿Alguna solución conocida?
  • ¿Es posible usar Couch DB o MySql o cualquier otro DB en Android?
  • "AS" equivalente en sqlite
  • Cómo obtener el registro de llamadas desde fecha específica en android
  • Cómo insertar valor nulo en Sqlite con SQLiteStatement
  • Donde la cláusula en SQLite no funciona en android :(
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.