撰写2MB邮件并发送到相同的电子邮件ID时。然后,我尝试回复同一封邮件[2MB]。它正在发送。打开回复邮件时,出现以下错误。
错误:“ java.lang.IllegalStateException:无法读取行0,列0 来自CursorWindow。确保游标已正确初始化 然后从中访问数据。”
此行出现错误:
cursor.getString(0);
答案 0 :(得分:0)
请考虑首先获取列索引,然后尝试读取该值。由于您没有发布代码,因此我只能提出以下建议:
cursor.getString(cursor.getColumnIndex(0));
例如,您的代码可能如下所示:
String query = "some_query_here";
Cursor cursor = db.rawQuery(query, null);
if(cursor.getCount() > 0) {
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
String result = cursor.getString(cursor.getColumnIndex(0));
cursor.moveToNext();
}
cursor.close();
}
也许,在初始化Cursor
对象时犯了一个错误。考虑重新检查您的代码。
答案 1 :(得分:0)
如果您的Cursor
返回了任何行,则它将包含至少1个索引为0的列,因此不会有错误。
但是看来它是空的(无行)。
您需要检查是否存在任何行的是moveToFirst()
,如果存在第一行(因此是任何行),则返回true
:
if (cursor.moveToFirst()) {
String columnvalue = cursor.getString(0);
} else {
// write your code here
}
答案 2 :(得分:0)
看起来你的行有超过 2MB 的数据大小,所以游标抛出 IllegalStateException。