Android游标始终返回null

End*_*ave -2 sqlite android

我一直收到以下错误

android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
Run Code Online (Sandbox Code Playgroud)

我知道我在数据库中有数据,因为对所有数据(而不是单个条目)的类似查询成功地提取了一个列表

这是我的数据库助手的代码

public class DatabaseHandler extends SQLiteOpenHelper {
    ...

    public Service getMostRecentService() {
    SQLiteDatabase db = this.getReadableDatabase();
    String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS + " ORDER BY " + KEY_ID + " DESC LIMIT 1;";

    Cursor cursor = db.rawQuery(selectQuery, null);

    Service service = new Service();
    if(cursor != null) {
        service = new Service(cursor.getString(1), cursor.getString(2));
    }

    return service;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何想法为什么我一直得到超出范围的例外?

Com*_*are 5

你还没有把你Cursor排成一排.最初,它位于-1.据推测,鉴于现有的代码,你应该叫moveToFirst()Cursornull检查和你之前getString()的电话.