Die Anwendung hat den Cursor oder das Datenbankobjekt, das hier geöffnet wurde, nicht geschlossen:

Mein Code ist:

public class EventDataSQLHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "my.db"; } public class Test extends Activity { EventDataSQLHelper eventsData; @Override protected void onDestroy() { System.out.println("onDestroy"); close(); if (db!=null){ db.close(); } super.onDestroy(); } public void close() { eventsData.close(); } 

Ich habe die db hier geschlossen .. In all meinen Aktivitäten außer dies seine Arbeit (keine Ausnahme wird gezeigt) .. Hier, wenn ich wieder drücken Taste aus dieser Test-Aktivität die unten Ausnahme Ausnahme geworfen wird

  • Facebook-Overlay-Animation
  • Pflegen Sie Drag & Dropped Items Position beim Neustart
  • Verwenden Sie Dienstkonto, um Google InAppPurchase zu überprüfen
  • Android ListView mit mehreren ausgewählten und benutzerdefinierten Adapter
  • Arrayadapter.getcount Nullpunktausnahme
  • Galerie-Artikel überlappen (bluten in)
  •  02-14 15:59:34.642: ERROR/Database(535): close() was never explicitly called on database '/data/data/com.tesy.connect/databases/test.db' 02-14 15:59:34.642: ERROR/Database(535): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here 02-14 15:59:34.642: ERROR/Database(535): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1810) 02-14 15:59:34.642: ERROR/Database(535): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817) 02-14 15:59:34.642: ERROR/Database(535): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:851) 02-14 15:59:34.642: ERROR/Database(535): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:844) 02-14 15:59:34.642: ERROR/Database(535): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:540) 02-14 15:59:34.642: ERROR/Database(535): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203) 02-14 15:59:34.642: ERROR/Database(535): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98) 02-14 15:59:34.642: ERROR/Database(535): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:158) 02-14 15:59:34.642: ERROR/Database(535): at com.connect.Test.getEvents(Connect_EY.java:755) 02-14 15:59:34.642: ERROR/Database(535): at com.connect.Test.onCreate(Connect_EY.java:662) 02-14 15:59:34.642: ERROR/Database(535): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 02-14 15:59:34.642: ERROR/Database(535): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 02-14 15:59:34.642: ERROR/Database(535): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 02-14 15:59:34.642: ERROR/Database(535): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 02-14 15:59:34.642: ERROR/Database(535): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 02-14 15:59:34.642: ERROR/Database(535): at android.os.Handler.dispatchMessage(Handler.java:99) 02-14 15:59:34.642: ERROR/Database(535): at android.os.Looper.loop(Looper.java:123) 

    Die Ausnahme wird auf diese getEvents-Zeile geworfen:

     public class Test extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pageview); startRefreshActivity(); try { /* If No Record Exists Create a New One */ eventsData = new EventDataSQLHelper(this); Cursor cursor = getEvents(); startManagingCursor(cursor); } } private Cursor getEvents() { try { db = eventsData.getReadableDatabase(); Cursor cursor = db.query(EventDataSQLHelper.TABLE, null, null, null, null, null, null); startManagingCursor(cursor); return cursor; } catch (Exception ex) { System.out.println("Exception Occured : " + ex.toString()); return null; } } 

    Ausnahme:

     02-14 15:59:34.642: ERROR/Database(535): at com.testconnect.Test.getEvents(Test.java:755) 02-14 15:59:34.642: ERROR/Database(535): at com.testconnect.Test.onCreate(Test.java:662) 

  • Android bekommt das ziehbare, das sich als drawabletop von textview beendet hat
  • Wie hebt der Bootloader den Befehl nach einem "Neustart System mit Befehl"?
  • Ameise bauen: nicht in der Lage, tools.jar zu finden. Erwartet finden Sie es in C: \ Programme \ Java \ jre7 \ lib \ tools.jar
  • Fehler: Ursache android.compileSdkVersion fehlt
  • GreenDAO mit Sqlcipher Integration Beispiel
  • Aktualisieren eines Fragments in Reaktion auf Android Navigation Schublade Interaktion
  • 3 Solutions collect form web for “Die Anwendung hat den Cursor oder das Datenbankobjekt, das hier geöffnet wurde, nicht geschlossen:”

    Ich habe die Ausnahme gelöst. ich habe angerufen

      db = eventsData.getReadableDatabase(); 

    Zweimal deshalb, warum die Ausnahme geworfen wird

    Hast du versucht:

      Cursor cursor = getEvents(); startManagingCursor(cursor); cursor.close(); 

    ?

    Hast du versucht Nach Pass Rückgabewert schließen Cursor wie cursor.close

      private Cursor getEvents() { try { db = eventsData.getReadableDatabase(); Cursor cursor = db.query(EventDataSQLHelper.TABLE, null, null, null, null, null, null); startManagingCursor(cursor); cursor.close(); return cursor; } catch (Exception ex) { System.out.println("Exception Occured : " + ex.toString()); return null; } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.