新しいテーブルの作成をテストするためにアプリケーション データを消去しましたがgetWritableDatabase
、サブクラスから呼び出すたびに.SQLiteDatabaseHelper
IllegalStateException: database not open
データベースを開こうとすると、「データベースが開いていません」というメッセージが表示される理由がわかりません...
これが私のホームアクティビティ onCreate です。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mPhotoArr = new ArrayList<File>();
DBHelper dbHelp = new DBHelper(getApplicationContext());
}
そして、DBHelper クラスのコンストラクターの始まり
public DBHelper(Context context) {
super(context, "MyDatabase", null, 1);
db = getWritableDatabase(); //Crashing here
...
コールスタックは次のとおりです。
06-16 22:01:07.113: E/AndroidRuntime(24970): FATAL EXCEPTION: main
06-16 22:01:07.113: E/AndroidRuntime(24970): java.lang.RuntimeException: Unable to start activity ComponentInfo{**package**/**package**HomeActivity}: java.lang.IllegalStateException: database not open
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.os.Handler.dispatchMessage(Handler.java:99)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.os.Looper.loop(Looper.java:130)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.app.ActivityThread.main(ActivityThread.java:3687)
06-16 22:01:07.113: E/AndroidRuntime(24970): at java.lang.reflect.Method.invokeNative(Native Method)
06-16 22:01:07.113: E/AndroidRuntime(24970): at java.lang.reflect.Method.invoke(Method.java:507)
06-16 22:01:07.113: E/AndroidRuntime(24970): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
06-16 22:01:07.113: E/AndroidRuntime(24970): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
06-16 22:01:07.113: E/AndroidRuntime(24970): at dalvik.system.NativeStart.main(Native Method)
06-16 22:01:07.113: E/AndroidRuntime(24970): Caused by: java.lang.IllegalStateException: database not open
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:555)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:137)
06-16 22:01:07.113: E/AndroidRuntime(24970): at **package**.DBHelper.<init>(DBHelper.java:101)
06-16 22:01:07.113: E/AndroidRuntime(24970): at **package**.HomeActivity.onCreate(HomeActivity.java:53)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-16 22:01:07.113: E/AndroidRuntime(24970): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
06-16 22:01:07.113: E/AndroidRuntime(24970): ... 11 more