Galera, eu tenho o metodo getAll() que chama pra mim todos os ID e Descrição da tabela X, dentro desse metodo onde trato as exceções possuo o metodo MontarDados.
public List<RotuloFotos> getAll() {
List<RotuloFotos> ret = new ArrayList<>();
String selectQuery = "SELECT " + ID + "," + DESCRICAO + " FROM " + NomeTabela;
String whereQuery = " WHERE (" + SYNC_MOBILE + " = 'S' OR " + SYNC_MOBILE + " IS NULL)";
Log.i(LOG, selectQuery + whereQuery);
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery + whereQuery, null);
try {
if (c.moveToFirst()) {
do {
ret.add(montarDados(c));
} while (c.moveToNext());
}
} catch (Exception e){
ret = null;
}
return ret;
}
Durante o debug do metodo MontarDados, o mesmo está caindo dentro do catch retornando null e a seguinte mensagem aparece dentro do painel de debug
java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
Já verifiquei a inicialização do meu cursor e o mesmo já foi feito.
private RotuloFotos montarDados(Cursor c) {
RotuloFotos td;
try {
td = new RotuloFotos();
td.setRotulosFotosID(c.getLong(c.getColumnIndex(ID)));
td.setDescricaoRotulo(c.getString(c.getColumnIndex(DESCRICAO)));
td.setSyncPda(c.getString(c.getColumnIndex(SYNC_MOBILE)));
} catch (Exception e) {
td = null;
}
return td;
}