我一直在寻找这个问题的答案,并找到了许多其他类似的问题。但是,我相信我在接受的答案中遵循了代码,当我尝试运行它时,我仍然会抛出NullPointerException错误。我看到的问题是this。这是从光标获取列值的建议代码:
String id = cursor.getString( cursor.getColumnIndex("id") );
答案对我有意义,所以我根据自己的功能进行了调整:
public String getSubjectId(String subject, String level) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor subjectCursor = db.rawQuery("SELECT * FROM " + SUBJECTS_TABLE_NAME + " WHERE " + SUBJECTS_COL_2 + " = " + subject + " AND " + SUBJECTS_COL_3 + " = " + level, null);
String id = subjectCursor.getString(subjectCursor.getColumnIndex("ID"));
return id;
}
当我运行它时,我抛出一个NullPointerException错误。我看不出代码有问题,并且对这里的错误含义感到困惑。我对错误的理解是它发生在声明变量但它没有创建对象时,但我无法看到我在代码中的位置。我非常感谢我对错误触发此错误的解释,因为我相信我已经准确地遵循了许多在线教程。
编辑:我知道this question但我的问题是我看不到我将对象指定为null的地方,所以解决方案没有帮助我。