У меня есть Android.App.Application, который пытается создать БД. Я использую код примера SQLite db. Он отлично работает, если я использую его внутри Activity. Когда я пытаюсь создать то же самое в моем Android.App.Application, он сработает. Я не знаю, почему.Создать Sqlitedb из Android.App.Application
Когда я звоню это из деятельности:
public class Manager extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
fbdbhelper = new FishingBuddyOpenHelper(getApplicationContext());
db = fbdbhelper.getTbfw().getReadableDatabase();
}
БД SQLite создается (/data/data/com.fishingbuddy/databases/)
Когда это сделано из Android.App .Application он терпит неудачу:
public class FishingManager extends Application{
public FishingManager() {
fbdbhelper = new FishingBuddyOpenHelper(getApplicationContext());
db = fbdbhelper.getTbfw().getReadableDatabase();
}
09-22 21: 19: 18.386: E/AndroidRuntime (21881): неустранимым: главный 09-22 21: 19: 1 8.386: E/AndroidRuntime (21881): java.lang.RuntimeException: Не удалось> создать экземпляр приложения com.fishingbuddy.logic.FishingManager: java.lang.NullPointerException 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at android.app.LoadedApk.makeApplication (LoadedApk.java:504) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4550) 09- 22 21: 19: 18.386: E/AndroidRuntime (21881): at android.app.ActivityThread.access $ 1300 (ActivityThread.java:153) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): у android. app.ActivityThread $ H.handleMessage (ActivityThread.java:1307) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at android.os.Handler.dispatchMessage (Handler.java:99) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at android.os.Looper.loop (Looper.java:13 7) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at android.app.ActivityThread.main (ActivityThread.java:5227) 09-22 21: 19: 18.386: E/AndroidRuntime (21881) : at java.lang.reflect.Method.invokeNative (собственный метод) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at java.lang.reflect.Method.invoke (Method.java:511) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:795) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:562) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at dalvik.system.NativeStart.main (родной Метод) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): вызвано: java.lang.NullPointerException 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at android.content.ContextWrapper.getApplicationContext (ContextWrapper.java:109) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at com.fishingbuddy.logic.FishingManager. (FishingManager .java: 26) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at java.lang.Class.newInstanceImpl (собственный метод) 09-22 21: 19: 18.386: E/AndroidRuntime (21881) : at java.lang.Class.newInstance (Class.java:1319) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): at android.app.Instrumentation.newApplication (Instrumentation.java:983) 09 -22 21: 19: 18.386: E/AndroidRuntime (21881): at android.app.Instrumentation.newApplication (Instrumentation.java:968) 09-22 21: 19: 18.386: E/AndroidRuntime (21881): на android. app.LoadedApk.makeApplication (LoadedApk.java:499) 09-22 21: 19: 18.386: E/AndroidR unime (21881): ... 11
Я использую приложение, потому что я использую шаблон singleton для своего рыболовного менеджера. Все отлично работало, пока я не запустил финальную часть, сохранив все свои данные в SQLite db.
Заранее спасибо
Что 'fbdbhelper.getTbfw()' делает? – gunar
Получает объект db, который включает определение для таблицы – flitjes