と呼ばれます。getDatabaseはそう笑、穏やかな、ここで質問をして私の最初の時間再帰的
とにかく。私はAndroidで作業していて、私の最新ビルドは完璧に走った。ITが私に新しいワークステーションをくれた昨日まで。それは、私がプラットフォーム4.2.2およびAPIレベル17
Iを使用して、仮想デバイスでこれを実行しているのに役立ちます場合は
04-11 17:34:53.282: E/AndroidRuntime(789): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.blueharvest/com.example.blueharvest.SettingsActivity}: java.lang.IllegalStateException: getDatabase called recursively
:この新しいワークステーションを取得するので、私は次のエラーを得続けます誰かがこのエラーで何らかの光を当てることができることを本当に望んでいるので、私は髪を切り取るのを止めることができます、笑。その他の情報が必要な場合は
、私に知らせてください。
ありがとうございました。
Brad。
EDIT:エラーの原因を追加しましたコード:logcat
04-11 19:25:08.668: E/AndroidRuntime(2748): FATAL EXCEPTION: main
04-11 19:25:08.668: E/AndroidRuntime(2748): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.blueharvest/com.example.blueharvest.SettingsActivity}: java.lang.IllegalStateException: getDatabase called recursively
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.os.Handler.dispatchMessage(Handler.java:99)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.os.Looper.loop(Looper.java:137)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.app.ActivityThread.main(ActivityThread.java:5041)
04-11 19:25:08.668: E/AndroidRuntime(2748): at java.lang.reflect.Method.invokeNative(Native Method)
04-11 19:25:08.668: E/AndroidRuntime(2748): at java.lang.reflect.Method.invoke(Method.java:511)
04-11 19:25:08.668: E/AndroidRuntime(2748): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-11 19:25:08.668: E/AndroidRuntime(2748): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-11 19:25:08.668: E/AndroidRuntime(2748): at dalvik.system.NativeStart.main(Native Method)
04-11 19:25:08.668: E/AndroidRuntime(2748): Caused by: java.lang.IllegalStateException: getDatabase called recursively
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:204)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
04-11 19:25:08.668: E/AndroidRuntime(2748): at com.example.blueharvest.DatabaseHandler.setDefaultLabel(DatabaseHandler.java:90)
04-11 19:25:08.668: E/AndroidRuntime(2748): at com.example.blueharvest.DatabaseHandler.onCreate(DatabaseHandler.java:82)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
04-11 19:25:08.668: E/AndroidRuntime(2748): at com.example.blueharvest.DatabaseHandler.populateFields(DatabaseHandler.java:196)
04-11 19:25:08.668: E/AndroidRuntime(2748): at com.example.blueharvest.SettingsActivity.onCreate(SettingsActivity.java:45)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.app.Activity.performCreate(Activity.java:5104)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-11 19:25:08.668: E/AndroidRuntime(2748): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-11 19:25:08.668: E/AndroidRuntime(2748): ... 11 more
EDITの多くを追加しました。 setDefaultLabel()が原因です。
@Override
public void onCreate(SQLiteDatabase db) {
// Create tables
db.execSQL(CREATE_CATEGORIES_TABLE);
db.execSQL(CREATE_CHRGDATA_TABLE);
db.execSQL(CREATE_SETTINGS_TABLE);
setDefaultLabel();
}
/**
*
*/
public void setDefaultLabel() {
// create default label
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, "Default");
db.insert(TABLE_LABELS, null, values);
}
原因となっているコードを表示せずにエラーを送信すると、誰でも手伝ってもらうことはできません。また、logcatには "Caused by ..."という行があるので、さらにポストしてください。 – Squonk
まあコードはまったく変わっていないので、私はこの特定のケースでは、それは関係ありませんと思いました。プロジェクト自体もかなり大きく、このエラーがどこから来ているのか分からない。完全なlogcatが元の投稿に追加されました。 Caused by lineは同じことを述べています.getDatabaseは再帰的に呼び出されます。繰り返しますが、変更されたのはワークステーションだけです。非常に混乱します。とにかく、非常に迅速な返答に感謝します。 –
[OK]を...だから明らかに私は眠っていた。..再びlogcatて読んだ後、私は病気が、私はこれを掲示するために今、非常に愚かな感じを認める..私が前にいなかった何かに気づきました。とにかく、このエラーの原因となったコードが元の投稿に追加されました。それがなぜこの問題を引き起こすのかまだ分からないので、追加の援助はすばらしくなるでしょう。再度、感謝します。 B. –