0
我不能为我的生活算出为什么这段代码不工作。它的格式与我的应用程序的其他部分完全相同,除了我将两个属性传递给helper方法,这不应该是一个问题,我只返回一行可能是问题,但如果是这样,我不会理解!使用光标读取的问题从android sqlite3数据库中读取
我有一个活动,直到我打电话给这个命令。
Log.d("Testing","Testing: " + cardID + " " + cardTypeID);
//LogCat displays the right values 11 1
Cursor c = mDbHelper.fetchCard(cardID,cardTypeID); // <--COMMAND
辅助方法看起来像这样
public Cursor fetchCard(String cardID,String cardTypeID) {
String sql = "SELECT teamName FROM tbl_team JOIN tbl_card ON tbl_team.teamID = tbl_card.teamID WHERE cardID=" + cardID;
//This returns 1 row when run in a SQLite Database Browser
Log.d("Testing","Testing :" + cardID + " " + cardTypeID);
// Program has crashed before this Log
// Caused by: java.lang.NullPointerException
Cursor c;
c = mDb.rawQuery(sql, null);
return c;
我倾向于这之中,因为只有一个已读行,我需要做一个c.moveFirst()
什么的。会帮助解决这个问题。另外为什么我不能写任何LogCat。它似乎马上失败?
PS。我试过 return mDb.rawQuery(sql, null);
我认为这与上面相同。
非常感谢 马克
你是对的我愚蠢地错过了mdHelper初始化。如果添加了c.close()之后出现了一个关闭游标错误,那么现在已经尝试过c.movefirst()会有希望进入它的底部。所以我使用LogCat,但有时不明白它是什么。我只有1行,正在使用LogCat作为一种面包屑,就像得到了多少。谢谢你的帮助。 –
是的,它终于有效。那么我只花了4小时在这个小问题上。再次感谢你的帮助。 –
如果您在应用程序崩溃时有空的logcat,请检查您的try/catch是否阻止并确保您不会吞下任何例外而不打印它们。此外,调试器可以帮助并向您显示导致异常的行和空变量。 – ernazm