I am getting a Weird cursorIndexOutOfBoundsException
The logcat:
11-12 13:17:01.545: ERROR/AndroidRuntime(329): FATAL EXCEPTION: main
11-12 13:17:01.545: ERROR/AndroidRuntime(329):
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.gremlingames.rimblade/
com.gremlingames.rimblade.LevelSelectionActivity}:
android.database.CursorIndexOutOfBoundsException: Index -1 requested,
with a size of 1
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
2663)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
2679)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.os.Handler.dispatchMessage(Handler.java:99)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.os.Looper.loop(Looper.java:123)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.app.ActivityThread.main(ActivityThread.java:4627)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
java.lang.reflect.Method.invokeNative(Native Method)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
java.lang.reflect.Method.invoke(Method.java:521)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
dalvik.system.NativeStart.main(Native Method)
11-12 13:17:01.545: ERROR/AndroidRuntime(329): Caused by:
android.database.CursorIndexOutOfBoundsException: Index -1 requested,
with a size of 1
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:
214)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:
84)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
com.gremlingames.rimblade.LevelSelectionActivity.onCreate(LevelSelectionActivity.java:
52)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
1047)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
2627)
11-12 13:17:01.545: ERROR/AndroidRuntime(329):     ... 11 more

The relevant code snippet:
RimbladeDatabaseOpenHelper dataBaseOpener = new
RimbladeDatabaseOpenHelper(
                                (Context) getApplication());
                SQLiteDatabase rimbladeDatabase =
dataBaseOpener.getReadableDatabase();
                Cursor levelCursor = rimbladeDatabase.rawQuery("SELECT "
                                + RimbladeDatabaseOpenHelper.LEVEL_COL_NAME + " 
as _id, "
                                + RimbladeDatabaseOpenHelper.SCORE_COL_NAME + " 
FROM "
                                + RimbladeDatabaseOpenHelper.SCORE_TABLE_NAME, 
null);

                int totalScore = 0;
                int scoreIndex = levelCursor
                                
.getColumnIndex(RimbladeDatabaseOpenHelper.SCORE_COL_NAME);
                while (!levelCursor.isAfterLast()) {
                        totalScore += levelCursor.getInt(scoreIndex);
                }
The RimbladeDatabaseOpenHelper:
public class RimbladeDatabaseOpenHelper extends SQLiteOpenHelper {

        private static final int DATABASE_VERSION = 1;
    public static final String SCORE_TABLE_NAME = "scores";
    public static final String LEVEL_COL_NAME = "level";
    public static final String SCORE_COL_NAME = "score";
    private static final String SCORE_TABLE_CREATE =
                "CREATE TABLE " + SCORE_TABLE_NAME + " (" +
                LEVEL_COL_NAME + " TEXT NOT NULL, " +
                SCORE_COL_NAME + " INT NOT NULL);";



        public RimbladeDatabaseOpenHelper(Context context) {
                super(context, "rimblade", null, DATABASE_VERSION);
        }

        public void onCreate(SQLiteDatabase db) {
                db.execSQL(SCORE_TABLE_CREATE);
                android.content.ContentValues values = new
android.content.ContentValues();
                values.put(LEVEL_COL_NAME, "start");
                values.put(SCORE_COL_NAME, 0);
                db.insert(SCORE_TABLE_NAME, SCORE_COL_NAME, values);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {

        }

}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to