3

Android カレンダーからいくつかのデータを読み取っていますが、次のような奇妙なクラッシュ レポートをユーザーから受け取ることがあります。

java.lang.IllegalStateException: Couldn't read row 384, col 47 from CursorWindow. 
Make sure the Cursor is initialized correctly before accessing data from it.

私のコードはここにあります(太字はアプリがクラッシュする行です):

        Cursor eventCursor = contentResolver.query
            (builder.build(), 
            null, 
            CalendarContract.Instances.CALENDAR_ID + " IN (" + ids  + ")", 
            null, 
            null);

        if (eventCursor == null)
            return true;

        while (eventCursor.moveToNext()) {  //this line causecrash
            ... do something...
        }

なぜこれが起こるのですか?シミュレートできません。理由もエラーメッセージも理解できません。

4

1 に答える 1

0

反復eventCursor.moveToFirst()の最初に、最初の行に移動するために使用します。次のようなものを使用できます。

if (eventCursor != null) {

    //Start from beginning
    eventCursor.moveToFirst();

    // Loop over rows
    while (eventCursor.moveToNext()) {

        // Do Somehing here
    }
 }

を使用して、カーソルに行があるかどうかを確認することもできますeventCursor.getCount()

于 2013-05-15T12:17:48.120 に答える