我收到了应用程序的少数用户报告的异常情况。但是,当我尝试使用本地设备时,我没有得到相同的结果。 需要就如何解决问题的方法提出建议。
java.lang.IllegalStateException:无法从CursorWindow读取第0行,第0列。在从中访问数据之前,请确保正确初始化Cursor。 在android.database.CursorWindow.nativeGetLong(本机方法) 在android.database.CursorWindow.getLong(CursorWindow.java:507) 在android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:75) 在android.database.AbstractCursor.moveToPosition(AbstractCursor.java:220) 在android.database.AbstractCursor.moveToFirst(AbstractCursor.java:237)
以下是上下文的详细信息:
将图像存储为blob的表格中存在异常。表定义是 photo_id字符串, blob_image Blob blob_date字符串
获取blob数据的代码如下
byte[] photo= null;
Cursor cursor = null;
String criteria = " photo_id = ?";
String[] arguments = {photoid};
try {
cursor = database.query("MY_GALLERY", null,criteria, arguments, null, null, null);
if(null !=cursor){
int rowCount = cursor.getCount();
if(rowCount>0){
cursor.moveToFirst();
int colIndex = cursor.getColumnIndex("blob_image");
if (colIndex != -1) {
photo = cursor.getBlob(colIndex));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
因为我在尝试检查cursor.getCount()后行计数大于0时尝试获取blob值我发现很难 为什么会引发cusrsor初始化问题。 我还试图检查保存图像的大小。它们的尺寸不到400kb。
使用Android版本4.4.4的Nexus 7和Android版本4.4的三星平板电脑SM-T116NY也会报告此错误。
该应用程序已使用超过两年,我第一次遇到此问题。
我已经检查了相似和相关的问题,并提到了大多数建议[关于适当的数据库初始化, 处理游标索引,打开/关闭游标,行大小限制小于2mb [照片]
将其存储在数据库中的一个原因是有一个备用存储,用户不会错误地删除内容。 在应用程序中,仅当在文件系统中找不到图像时才使用来自DB的图像。
任何建议或建议?
感谢 普拉迪普