从表中获取数据时,我收到SQLiteBlobTooBigException
异常。
这是stacktrace:
Caused by android.database.sqlite.SQLiteBlobTooBigException: string or blob too big (code 18)
at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(SQLiteConnection.java)
at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:968)
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:143)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
答案 0 :(得分:0)
我发现如何使用length()和substr()仅请求1MB(CursorWindow的最大值为2MB),也许它会help。另外,您可以将context.getContentResolver().query()
与仅包含相关列的选择一起使用,这样就不会加载与其他(不必要)列相关的数据。