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
を避けるために?あなたのonDestroy()メソッド内でclose文を逆にする必要がありはどのようにデシベル近くないと、カーソルの例外この例外を回避するためにどのよう
**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 >= 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();
}
}
}
を投げている理由私はこのハイコのように与えられた..しかし、まだ..同じ例外を取得し、行が法のgetData()内にあるきthatsの
を呼んでいました。 db = helData.getReadableDatabase(); &cursor = db.query(DataSQLHelper.TABLE、null、null、 null、null、null、null); – MorningGlory
これは私のコード保護ボイドonDestroy(){ super.onDestroy()です。 IF(!カーソル= NULL){ cursor.close()。 }(DB = NULL!){ db.close()であれば、 } } – MorningGlory
イムも同じ例外を取得。.. plsは助けて – jennifer