使用从android SQLite3数据库读取的游标时出现问题

使用从android SQLite3数据库读取的游标时出现问题,android,database,sqlite,cursor,Android,Database,Sqlite,Cursor,我一辈子都不明白为什么这个代码不起作用。它遵循的格式与我的应用程序的其他部分完全相同,只是我将两个属性传递给helper方法,这不应该是一个问题,我只返回一行,这可能是问题,但如果是,我不明白 在调用此命令之前,我有一个活动一直有效 Log.d("Testing","Testing: " + cardID + " " + cardTypeID); //LogCat displays the right values 11 1 Cursor c = mDbHelper.fetchCard(car

我一辈子都不明白为什么这个代码不起作用。它遵循的格式与我的应用程序的其他部分完全相同,只是我将两个属性传递给helper方法,这不应该是一个问题,我只返回一行,这可能是问题,但如果是,我不明白

在调用此命令之前,我有一个活动一直有效

Log.d("Testing","Testing: " + cardID + " " + cardTypeID);
//LogCat displays the right values 11 1

Cursor c = mDbHelper.fetchCard(cardID,cardTypeID);  // <--COMMAND
我倾向于这样做,因为只有一行已经被读取,我需要做一个
c.moveFirst()
之类的事情。我会帮你解决这个问题的。还有,我为什么不给LogCat写信呢。它似乎马上就失败了

我已经试过了 return
mDb.rawQuery(sql,null)
我相信这和上面一样

非常感谢
标记您的
mDbHelper

为空。初始化它。学习使用LogCat,而不是用日志猜测导致应用程序崩溃的行,这真的很有帮助。

你说得对,我愚蠢地错过了mdHelper初始化。之后出现了一个关闭光标错误,因此添加了c.close(),然后出现了一个索引越界错误,现在已经尝试了c.movefirst()将很有希望找到它的底部。所以我确实使用LogCat,但有时不明白它是关于什么的。我只有一排,用LogCat作为面包屑的一种,比如我走了多远。谢谢你的帮助。是的,终于成功了。我在这个小问题上只花了4小时。再次感谢您的帮助。如果应用程序崩溃时日志为空,请检查您的try/catch块是否存在,并确保在打印时不会吞下任何异常。调试器还可以帮助您显示导致异常的行和null变量。
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;