前言

记录一下查询数据库时的异常

Caused by: android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)
at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:859)
at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:149)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:137)

正文

原因是数据库中插入了媒体的专辑图,数据库好几百M,查询数据了时蹦了。

下面是stackoverflow找的解决方法

try {
    @SuppressLint("DiscouragedPrivateApi")
    Field field = CursorWindow.class.getDeclaredField("sCursorWindowSize");
    field.setAccessible(true);
    field.set(null, 100 * 1024 * 1024);
} catch (Exception e) {
    e.printStackTrace();
}

参考文章

  1. SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1

相关文章

暂无评论

none
暂无评论...