SQLite
 sql >> Datenbank >  >> RDS >> SQLite

java.lang.IllegalStateException:Zeile 0, Spalte -1 aus CursorWindow konnte nicht gelesen werden – Android-SQLite-Problem

Die dritte Zeile ist das Problem. Sehen Sie sich Ihre Logcat-Ausgabe und die Android-Quellen an (suchen Sie in den Quellen nach „Spaltennamen mit Tabellennamen anfordern“). Sehen Sie sich nun Ihre Logcat-Ausgabe an. Die Zeile mit diesem Satz enthält den angeforderten Spaltennamen:/mnt/sdcard/googleCheckout/Saxo Trader.apk . Dieser Wert kommt von Ihrem Ergebnis-Cursor. Natürlich enthält Ihre DB diese Spalte nicht :-)

Ersetzen Sie die Zeilen

     String url = c.getString(c.getColumnIndex(c.getString(0)));
     String code = c.getString(c.getColumnIndex(c.getString(1)));

mit

     String url = c.getString(c.getColumnIndex("reco_index_user_action_download_file"));
     String code = c.getString(c.getColumnIndex("reco_index_content_code"));

Ich schlage auch vor, den Code zum Abrufen der Indizes von innerhalb der Schleife nach außerhalb der Schleife zu ziehen. Sie müssen nicht immer wieder nach den Indizes fragen.