Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to avoid db not close and cursor exception
    text
    copied!<pre><code>02-02 14:31:34.048: WARN/SQLiteCompiledSql(359): Releasing statement in a finalizer. Please ensure that you explicitly call close() on your cursor: SELECT * FROM 02-02 14:31:34.048: WARN/SQLiteCompiledSql(359): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here 02-02 14:31:34.129: ERROR/Database(359): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here 02-02 14:31:34.129: ERROR/Database(359): at </code></pre> <p>How to avoid this exception ?? Pls help</p> <p>My code is given below : </p> <pre><code> **DataSQLHelper .class** public class DataSQLHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "test.db"; private static final int DATABASE_VERSION = 1; public DataSQLHelper (Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String sql = "create table " + TABLE + "( " + BaseColumns._ID + " integer primary key autoincrement, " + ID + " text, " + PASSWORD + " text, " + ACTIVE + " text, " + STATUS + " text);"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (oldVersion &gt;= newVersion) return; String sql = null; if (oldVersion == 1) sql = "alter table " + TABLE + " add note text;"; if (oldVersion == 2) sql = ""; if (sql != null) db.execSQL(sql); } @Override public synchronized void close() { super.close(); } } ***Test_Java .java*** public class Test_Java extends Activity { DataSQLHelper helData; SQLiteDatabase db; Cursor cursor; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { helData= new DataSQLHelper(this); cursor = getData(); startManagingCursor(cursor); setContentView(R.layout.view); } catch (Exception ex) { } } // onCreate Ends private Cursor getData() { try { db = helData.getReadableDatabase(); cursor = db.query(DataSQLHelper.TABLE, null, null, null, null, null, null); startManagingCursor(cursor); return cursor; } catch (Exception ex) { System.out.println("Exception Occured : " + ex.toString()); return null; } } @Override protected void onDestroy() { System.out.println("onDestroy"); super.onDestroy(); if (db!=null){ db.close(); } if (cursor!=null){ cursor.close(); } if ( helData!=null){ helData.close(); } } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload