簡體   English   中英

如何修復“ IllegalStateException”錯誤?

[英]how to fix an “IllegalStateException” error?

我想問一下為什么它不起作用,所以下次我可以更好地幫助自己。 如何修復android studio中的IllegalStateException錯誤。 從數據庫中檢索數據時出現此錯誤。 我收到的錯誤是一個非法狀態異常,如下所述。

致命異常:java.lang.IllegalStateException無法從CursorWindow讀取行6023,列0。 在從游標訪問數據之前,請確保正確初始化了游標。 com.navdemo.ui.forms.FormDetailViewModel $ 10.run

代碼,我得到這個錯誤是:

private void initScansForForm() {
        if (form == null) {
            return;
        }

        final String formId = form.getFormId();
        new Thread() {
            public void run() {
                List<Scan> scans = new ArrayList<>();
                Cursor c = db.fetchFormScans(formId);
                int id = 0;
                while (c.moveToNext()) {
                    if (!c.isNull(0)){
                        id = c.getInt(0);

                    }
                    else {
                        Log.d(TAG, "run: "+id);
                    }
                    int formId = c.getInt(1);
                    String scanTime = c.getString(2);
                    String locationName = c.getString(3);
                    double latitude = c.getDouble(4);
                    double longitude = c.getDouble(5);

                    scans.add(new Scan(id, formId, scanTime, locationName, latitude, longitude));
                }
                setScans(scans);
            }
        }.start();
    }
public Cursor fetchFormScans(@NonNull String formId) {
        return fetchFormScans(Integer.parseInt(formId));
    }


public Cursor fetchFormScans(@NonNull String formId) `enter code here`{
        return fetchFormScans(Integer.parseInt(formId));
 }

嘗試在執行moveToNext之前檢查!cursor.isAfterLast()

請確保您在字符串中得到一個數字formId = form.getFormId(); 由於您的fetchFormScans()方法將字符串formId解析為整數,因此如果formId中包含字母,可能會出現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM