2010-12-03 7 views
0

Ich arbeite an einer Anwendung und es funktioniert gut, aber in Protokoll kann ich den unten genannten Fehler sehen: Bitte schlagen Sie, was könnte der Grund dafür sein und wie Sie dies beheben .. Ich habe alle geschlossen Cursor und Schließen der Datenbankverbindung nach der Verwendung. Bitte helfen ...Datenbankfehler in Logcat

12-02 17: 16: 48.500: ERROR/Datenbank (388): close() wurde nie explizit genannt auf Datenbank ‚/data/data/com.example.my/databases/my .db ' 12-02 17: 16: 48.500: FEHLER/Datenbank (388): android.database.sqlite.DatabaseObjectNotClosedException: Die Anwendung hat den Cursor oder das Datenbankobjekt, das hier geöffnet wurde, nicht geschlossen 12-02 17: 16: 48.500 : Fehler/Datenbank (388): bei android.database.sqlite.SQLiteDatabase. (SQLiteDatabase.java:1810) 12-02 17: 16: 48.500: Fehler/Datenbank (388): bei android.database.sqlite.SQLiteDatabase. openDatabase (SQLiteDatabase.java:817) 12-02 17: 16: 48.500: Fehler/Datenbank (388): bei android.database.sqlite.SQLiteDatabase.openOrCreateDatabase (SQLiteDatabase.java:851)

+0

Bitte beachten Sie, dass ich die Antwort unten geändert haben. Diesmal sollte es die richtige Antwort sein! –

Antwort

0

Sie müssen die Datenbank aus der Methode onDestroy Ihrer Aktivität schließen. Angenommen, Sie haben Ihre Anwendung mit einer "Datenbankhelfer" -Klasse geschrieben, wie in einigen Android-Lernprogrammen wie Notepad, dann sollte dies für Sie funktionieren. (Ansonsten ersetzen Sie einfach mDbHelper.close() mit dem entsprechenden Aufruf Ihrer Datenbank-Verbindung zu schließen.)

public class MyClass extends Activity { 
// ... 
    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     mDbHelper.close(); 
    } 
} 
+0

Vielen Dank .. es löste mein Problem auch .. :) – Angel

+0

@Angel: Ich fürchte, ich hatte Recht, diese Antwort nicht zu vertrauen; Ich habe den Fehler gerade erst gesehen. Ich habe das, was ich geschrieben habe, durch eine Antwort ersetzt, die ich für richtig halte. Wenn es für Sie funktioniert, bitte "akzeptieren". Vielen Dank. –