0
LogCatスタックにNullPointerExcpetionが追加されましたが、その理由を理解できないようです。私はいくつかの外の目が私が問題を見つけるのを助けることを願っています。ここNullPointerExceptionの理由が見つかりません。 Android
が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)
スタックステートセーブ()メソッドとcreateSchedule()メソッドを指しているように見えます。関連する行は二重アスタリスクになっています。
ステートセーブ():
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);**
}
私は他のコードをポストする必要がある場合は私に知らせてください。あなたが私に与えることができる何か助けをありがとう。
よろしく、 ジェイソン
'createSchedule()'にヌルポインタがある場合は、 'initialValue'か' mDb'です。私は後者を推測するだろう。 –