SQLite
 sql >> Database >  >> RDS >> SQLite

java.lang.IllegalStateException:impossibile leggere la riga 0, col -1 da CursorWindow - Problema con Android sqlite

La terza riga è il problema. Visualizza l'output di logcat e le origini Android (cerca all'interno delle fonti per "richiedere il nome della colonna con il nome della tabella"). Ora dai un'occhiata al tuo output logcat. La riga con questa frase contiene il nome della colonna che stai richiedendo:/mnt/sdcard/googleCheckout/Saxo Trader.apk . Questo valore proviene dal cursore dei risultati. Ovviamente il tuo db non contiene questa colonna :-)

Sostituisci le righe

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

con

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

Suggerisco anche di estrarre il codice per ottenere gli indici dall'interno del ciclo all'esterno del ciclo. Non c'è bisogno di chiedere gli indici più e più volte.