2012-09-03 2 views
0

J'ai une application qui a besoin de synchroniser 3 tables de base de données qu'il détient avec la liste de contacts Android. Je boucle la liste de contacts et je crée un objet personnalisé pour chaque ligne retournée et compare les propriétés de cet objet avec ce que j'ai stocké dans ma table d'applications pour ce contact.Android erreur de mémoire

Cette tâche est exécutée dans une tâche asynchrone.

Cela fonctionne très bien pour moi la première fois qu'il s'exécute, mais si je quitte l'application et revenir plus d'une fois, il se casse et les erreurs suivantes sont renvoyées. Des idées?

09-03 06:42:19.070: E/IMemory(31018): cannot dup fd=1023, size=2097152, err=0 (Too many open files) 

09-03 06:42:19.070: E/IMemory(31018): cannot map BpMemoryHeap (binder=0x1197738), size=2097152, fd=-1 (Bad file number) 

09-03 06:42:19.070: E/JavaBinder(31018): *** Uncaught remote exception! (Exceptions are not yet supported across processes.) 

09-03 06:42:19.070: E/JavaBinder(31018): java.lang.RuntimeException: No memory in memObj 
09-03 
06:42:19.070: E/JavaBinder(31018): at android.database.CursorWindow.native_init(Native Method) 
09-03 
06:42:19.070: E/JavaBinder(31018): at android.database.CursorWindow.<init>(CursorWindow.java:518) 
09-03 
06:42:19.070: E/JavaBinder(31018): at android.database.CursorWindow.<init>(CursorWindow.java:27) 
09-03 
06:42:19.070: E/JavaBinder(31018): at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:493) 

09-03 06:42:19.070: E/JavaBinder(31018): at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:496) 
09-03 06:42:19.070: E/JavaBinder(31018): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:103) 
09-03 06:42:19.070: E/JavaBinder(31018): at android.os.Binder.execTransact(Binder.java:288) 
09-03 06:42:19.070: E/JavaBinder(31018): at dalvik.system.NativeStart.run(Native Method) 

Répondre

1
E/IMemory(31018): cannot dup fd=1023, size=2097152, err=0 (Too many open files) 

android.database.CursorWindow.native_init(Native Method) 

Ces deux lignes suggèrent que vous chambouler quelque chose avec Curseurs, pas comme la fermeture etc.,

Je suggérerais ferment tous les curseurs correctement et observer le comportement de l'application.