Android 如何解决“问题”;“非法国家例外”;错误?

Android 如何解决“问题”;“非法国家例外”;错误?,android,sqlite,cursors,Android,Sqlite,Cursors,我想问一下为什么它不起作用,这样下次我就能更好地帮助自己了。如何修复android studio中的IllegalStateException错误。我在从数据库检索数据时遇到此错误。我得到的错误是如下所述的非法状态异常 致命异常:java.lang.IllegalStateException 无法从游标窗口读取第6023行第0列。在从光标访问数据之前,请确保光标已正确初始化。 com.navdemo.ui.forms.FormDetailViewModel$10.run 我得到的错误代码是: p

我想问一下为什么它不起作用,这样下次我就能更好地帮助自己了。如何修复android studio中的
IllegalStateException
错误。我在从数据库检索数据时遇到此错误。我得到的错误是如下所述的非法状态异常

致命异常:java.lang.IllegalStateException 无法从游标窗口读取第6023行第0列。在从光标访问数据之前,请确保光标已正确初始化。 com.navdemo.ui.forms.FormDetailViewModel$10.run

我得到的错误代码是:

private void initScansForForm(){
if(form==null){
返回;
}
最后一个字符串formId=form.getFormId();
新线程(){
公开募捐{
列表扫描=新建ArrayList();
游标c=db.fetchFormScans(formId);
int id=0;
while(c.moveToNext()){
如果(!c.isNull(0)){
id=c.getInt(0);
}
否则{
Log.d(标签“run:+id”);
}
int formId=c.getInt(1);
字符串扫描时间=c.getString(2);
String locationName=c.getString(3);
双纬度=c.getDouble(4);
双经度=c.getDouble(5);
添加(新扫描(id、formId、扫描时间、位置名称、纬度、经度));
}
设置扫描;
}
}.start();
}
公共游标fetchFormScans(@NonNull String formId){
返回fetchFormScans(Integer.parseInt(formId));
}
公共游标fetchFormScans(@NonNull String formId)`在此处输入代码`{
返回fetchFormScans(Integer.parseInt(formId));
}

尝试检查
!cursor.isAfterLast()
在执行下一步操作之前,请确保您在 字符串formId=form.getFormId();
由于fetchFormScans()方法正在将字符串formId解析为整数,因此如果formId中包含字母表,则可能会出现问题。

错误为非法状态异常。我猜c(光标)为空或列不存在。但我不知道如何修复它。我没有更多相关信息。我正在使用fabric获取问题中共享的错误信息。错误发生在此行id=c.getInt(0);好的,谢谢。。你能告诉我如何修复它吗?行数不是问题,因为它们可以被窗口化。行的大小可能是个问题。
fetchFormScans()
是否在生成的游标中包含一些潜在的巨大列?ID为null。实际上,表为空,这就是发生游标初始化问题的原因。