目前我正在處理我的第一個Android應用程序,並且遇到了我無法解決的問題。當我嘗試將數據插入到自己的數據庫中有一個錯誤:三月七日至一十八日:41:04.414:ERROR/AndroidRuntime(3480):顯示java.lang.NullPointerException使用ContentValues存儲的值的順序不正確,爲什麼?
我對插入表的代碼是:
public long createRecord(String created_time, String modified_time,
long reading, String unit, String period, String remark) {
ContentValues values = new ContentValues(6);
values.put(KEY_CREATED_TIME, created_time);
values.put(KEY_MODIFIED_TIME, modified_time); //System.out.println(values);
values.put(KEY_RECORD, reading); //System.out.println(values);
values.put(KEY_UNIT, unit); //System.out.println(values);
values.put(KEY_PERIOD, period);// System.out.println(values);
values.put(KEY_REMARK, remark);
System.out.println(values);
return mDb.insert(DATABASE_TABLE, null , values);
}
這是我的Adapter類,它是我的DatabaseHelper類的一個實例。對於我的DatabaseHelper類,我可以將創建的數據庫從資產文件夾複製到系統數據庫文件夾中。但只是不能創建數據到表中,我試圖打印出「值」,它表明:
created_time = 2010-07-18 03:41:04備註=單位= mg/dL讀數= 67 period = Before Meal modified_time = 00:00:00 這不是它應該的樣子,所以我猜想這可能是問題所在。 任何人都可以幫助我嗎?在線搜索,但沒有這麼多的信息。在此先感謝:)
雅,我檢查了mDb它顯示「null」。我可以知道這個原因嗎?我該如何解決?謝謝 – Wen 2010-07-18 04:12:07
在你得到一個引用的行上出錯了:'SQLiteDatabase mDb = // null here;' – yanchenko 2010-07-18 04:38:40
好的,我加了mDb = mDbHelper.getWritableDatabase();現在,代碼在模擬器模式下工作正常,但不能在手機上工作。如果我在設備上運行代碼,它將顯示錯誤消息: 07-18 13:51:49.595:錯誤/數據庫(2022):插入備註= OL期間=之前錯誤修改時間= 00:00:00單位= mg/dL reading = 68 created_time = 2010-07-18 13:51:49 07-18 13:51:49.595:ERROR/Database(2022):android.database.sqlite.SQLiteException:no such table:records:,while compiling :INSERT INTO記錄(備註,週期,modified_time,unit,reading,created_time)VALUES(?,?,?,?,?,?); 有什麼建議嗎? – Wen 2010-07-18 05:55:29