2010-10-30 7 views
2

Je suis en train de traiter une application avec SQLite. Quand je suis aller chercher les valeurs de la base de données, je reçois l'erreur suivante:Erreur de base de données dans Android

10-30 15:06:07.584: ERROR/Database(817): Leak found 
10-30 15:06:07.584: ERROR/Database(817): java.lang.IllegalStateException: /data/data/com.fitzsoftware.grocessaryList/databases/example.db SQLiteDatabase created and never closed 
10-30 15:06:07.584: ERROR/Database(817):  at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1581) 
10-30 15:06:07.584: ERROR/Database(817):  at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638) 
10-30 15:06:07.584: ERROR/Database(817):  at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:659) 
10-30 15:06:07.584: ERROR/Database(817):  at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:652) 
10-30 15:06:07.584: ERROR/Database(817):  at android.app.ApplicationContext.openOrCreateDatabase(ApplicationContext.java:482) 
10-30 15:06:07.584: ERROR/Database(817):  at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:193) 
10-30 15:06:07.584: ERROR/Database(817):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98) 
10-30 15:06:07.584: ERROR/Database(817):  at com.fitzsoftware.grocessaryList.DataHelper.<init>(DataHelper.java:46) 
10-30 15:06:07.584: ERROR/Database(817):  at com.fitzsoftware.grocessaryList.MyShoppingList.onCreate(MyShoppingList.java:63) 
10-30 15:06:07.584: ERROR/Database(817):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 
10-30 15:06:07.584: ERROR/Database(817):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364) 
10-30 15:06:07.584: ERROR/Database(817):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417) 
10-30 15:06:07.584: ERROR/Database(817):  at android.app.ActivityThread.access$2100(ActivityThread.java:116) 
10-30 15:06:07.584: ERROR/Database(817):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
10-30 15:06:07.584: ERROR/Database(817):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-30 15:06:07.584: ERROR/Database(817):  at android.os.Looper.loop(Looper.java:123) 
10-30 15:06:07.584: ERROR/Database(817):  at android.app.ActivityThread.main(ActivityThread.java:4203) 
10-30 15:06:07.584: ERROR/Database(817):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-30 15:06:07.584: ERROR/Database(817):  at java.lang.reflect.Method.invoke(Method.java:521) 
10-30 15:06:07.584: ERROR/Database(817):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
10-30 15:06:07.584: ERROR/Database(817):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549) 
10-30 15:06:07.584: ERROR/Database(817):  at dalvik.system.NativeStart.main(Native Method) 

Les données qui sont en cours de récupération à partir de la base de données prend beaucoup de temps à afficher, que je pense est à cause de cela Erreur. Des suggestions sur la façon de le résoudre?

Répondre

1

On dirait que vous ouvrez la base de données mais ne la fermez jamais ...? Ou peut-être un fichier de base de données corrompu ...? Essayez de désinstaller votre programme et exécutez-le à nouveau. Avez-vous la même erreur la première fois que vous l'exécutez? - ou la deuxième fois?

+0

Je suppose que la première fois que vous l'exécutez, le programme ouvre/crée la base de données. Ensuite, vous oubliez de le fermer correctement, puis la deuxième fois, votre programme ne peut pas y accéder - car il est ouvert. Je n'ai pas beaucoup travaillé avec sqlite pour être plus précis. Je dirais que vous devez le faire étape par étape. Créer un nouveau programme et commencer par rien d'autre que créer et fermer une base de données et ajouter des choses à partir de là en remarquant quand ça ne va pas. – Espen

+0

Vous devrez probablement faire quelque chose comme db.close() lorsque vous en avez fini avec. Je ne suis pas complètement sûr de sqlite, mais une recherche rapide pour "didacticiel android sqlite" a donné quelques résultats, et l'un d'eux où: http://www.anddev.org/working_with_the_sqlite-database_-_cursors-t319.html - Je Je suis sûr que vous verrez comment utiliser complètement une simple base de données là-bas. – Espen