データベース ファイルが data/data/getPackageName()/databases フォルダーにどのように作成されるかを確認するための簡単なコードを作成しています。コードは以下のとおりです。
package com.package.test;
import android.os.Bundle;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLiteDatabase db = openOrCreateDatabase("MYDB",MODE_PRIVATE,null);
db .execSQL("CREATE TABLE IF NOT EXISTS MyTable (LastName VARCHAR, FirstName VARCHAR, AGE INT(3));");
db.execSQL("INSERT INTO MyTables VALUES ('Brimelow', 'lee', 37);");
db.close();
}
}
問題は、上記のコードを実行しようとすると、次のエラーが発生することです。
12-18 10:35:21.568: I/Database(2090): sqlite returned: error code = 1, msg = no such table: MyTables
12-18 10:35:21.568: E/Database(2090): Failure 1 (no such table: MyTables) on 0x125ef0 when preparing 'INSERT INTO MyTables VALUES ('Brimelow', 'lee', 37);'.
12-18 10:35:21.568: W/dalvikvm(2090): threadid=1: thread exiting with uncaught exception (group=0x4001d890)
12-18 10:35:21.583: E/AndroidRuntime(2090): FATAL EXCEPTION: main
12-18 10:35:21.583: E/AndroidRuntime(2090): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.package.test/com.package.test.MainActivity}: android.database.sqlite.SQLiteException: no such table: MyTables: INSERT INTO MyTables VALUES ('Brimelow', 'lee', 37);
また、Eclipse 内で、DDMS ビューのファイル エクスプローラー内を検索すると、「データ」フォルダーに何も見つからないようです。データベース テーブルの作成に失敗していることはわかっていますが、問題の原因がわかりません。誰でも助けてもらえますか?
ありがとう。