讀取來自光標數據時在我的AsyncTask讀取數據庫表(一個接一個)這樣的:致命例外從SQLite的
Cursor result = database.query("country", new String[] { "_id", "name", "var1", "var2", "var3", "var4", "rightanswer", "time1", "time2", "time3" }, "_id=" + id, null, null, null, null);
result.moveToFirst();
然後,我打印result.getColumnCount()
和接收10.
但是,當我嘗試打印這樣的數據:
System.out.println(result.getString(result.getColumnIndex("name")));
System.out.println(result.getString(result.getColumnIndex("var1")));
System.out.println(result.getString(result.getColumnIndex("var2")));
System.out.println(result.getString(result.getColumnIndex("var3")));
System.out.println(result.getString(result.getColumnIndex("var4")));
System.out.println(result.getString(result.getColumnIndex("rightanswer")));
System.out.println(result.getString(result.getColumnIndex("time1")));
System.out.println(result.getString(result.getColumnIndex("time2")));
System.out.println(result.getString(result.getColumnIndex("time3")));
我收到錯誤AndroidRuntime(8279): FATAL EXCEPTION: AsyncTask #1
AndroidRuntime(8279): Caused by: java.lang.NullPointerException
但是,當我只打印兩個第一列,
System.out.println(result.getString(result.getColumnIndex("name")));
System.out.println(result.getString(result.getColumnIndex("var1")));
它完全正常。
我不知道。
UPDATE:
String createQuery = "CREATE TABLE country (_id integer primary key autoincrement,name, var1, var2,var3,var4,rightanswer, time1,time2,time3);";
db.execSQL(createQuery);
可能'var2'返回null – 2013-05-06 09:09:21
顯示db.create查詢 – Blackbelt 2013-05-06 09:10:03
哪一行會拋出NPE? – BobTheBuilder 2013-05-06 09:11:35