В первый раз задавая вопрос здесь, так что будьте осторожны, Lol.getDatabase, называемый рекурсивно
В любом случае. Я работал над Android, и моя последняя сборка работала безупречно. До вчерашнего дня, когда ИТ дал мне новую рабочую станцию. После получения этой новой рабочей станции, я получаю следующее сообщение об ошибке:
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
Если это поможет, я бегу это виртуальное устройство, с помощью платформы 4.2.2 и уровень API 17.
I я действительно надеюсь, что кто-то может пролить свет на эту ошибку, поэтому я могу прекратить вырывать мои волосы, Лол.
Если требуется какая-либо другая информация, пожалуйста, дайте мне знать.
Большое спасибо,
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
Ну код совсем не изменился, поэтому я думал, что это не актуально в данном конкретном случае. Сам проект также довольно большой и не совсем уверен, откуда эта ошибка. Полный логарифм добавлен в исходное сообщение. Вызванная строка утверждает то же самое, getDatabase называется рекурсивно. Опять же, единственное, что изменилось, это рабочая станция. Очень смутно. В любом случае, спасибо за очень быстрый ответ. –
Хорошо ... Так что, видимо, я спал. После прочтения логарифма снова я заметил то, чего у меня не было раньше. Я признаю, что сейчас чувствую себя довольно глупо, чтобы опубликовать это. Во всяком случае, код, вызывающий эту ошибку, был добавлен в исходный пост. Все еще не уверен, почему это вызовет эту проблему, поэтому любая дополнительная помощь будет отличной. Еще раз спасибо. B. –