NullPointerExceptionの理由が見つかりません。アンドロイド

私はLogCatスタックにNullPointerExcpetionを取得していますが、なぜその理由が分からないようです。私はいくつかの外の目が私が問題を見つけるのを助けることを願っています。

LogCatのスタックは次のとおりです。

    10-28 02:04:55.998: ERROR/AndroidRuntime(524): FATAL EXCEPTION: main
    10-28 02:04:55.998: ERROR/AndroidRuntime(524): java.lang.NullPointerException
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at vt.nhw.android.easyringertoggle.ScheduleDbAdapter.createSchedule(ScheduleDbAdapter.java:77)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at vt.nhw.android.easyringertoggle.ScheduleEditActivity.saveState(ScheduleEditActivity.java:195)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at vt.nhw.android.easyringertoggle.ScheduleEditActivity.access$3(ScheduleEditActivity.java:189)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at vt.nhw.android.easyringertoggle.ScheduleEditActivity$5.onClick(ScheduleEditActivity.java:135)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at android.view.View.performClick(View.java:2408)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at  android.view.View$PerformClick.run(View.java:8816)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at android.os.Handler.handleCallback(Handler.java:587)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at android.os.Handler.dispatchMessage(Handler.java:92)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at android.os.Looper.loop(Looper.java:123)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at java.lang.reflect.Method.invokeNative(Native Method)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at java.lang.reflect.Method.invoke(Method.java:521)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    10-28 02:04:55.998: ERROR/AndroidRuntime(524):     at dalvik.system.NativeStart.main(Native Method)

スタックは、saveState()メソッドとcreateSchedule()メソッドを指しているようです。関連する行は二重アスタリスクになっています。

saveState():

private void saveState() {
    String title = mTitleText.getText().toString();
    SimpleDateFormat dateTimeFormat = new SimpleDateFormat(DATE_TIME_FORMAT);
    String scheduleDateTime = dateTimeFormat.format(mCalendar.getTime());

    if (mRowId == null) {
        **long id = mDbHelper.createSchedule(title, scheduleDateTime);**
        if(id > 0) {
            mRowId = id;
        }
    } else {
        mDbHelper.updateSchedule(mRowId, title, scheduleDateTime);
    }
}

createSchedule():

public long createSchedule(String title, String scheduleDateTime) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_TITLE, title);
    initialValues.put(KEY_DATE_TIME, scheduleDateTime);
    **return mDb.insert(DATABASE_TABLE, null, initialValues);**
}

他のコードを掲載する必要がある場合は、私にお知らせください。あなたが私に与えることができる何か助けをありがとう。

よろしく、 ジェイソン

0
createSchedule()にnullポインタがある場合は、 initialValue または mDb のいずれかになります。私は後者を推測するだろう。
追加された 著者 Steve Blackwell,

1 答え

mDb seems to be NULL because this is the only variable that is global.

1
追加された