Не удалось прочитать строку 0 sqlitedatabase - PullRequest
0 голосов
/ 05 марта 2019

Как это исправить?

W/CursorWindow: Window is full: requested allocation 2108731 bytes, free space 17752 bytes, window size 2097152 bytes
W/CursorWindow: Window is full: requested allocation 2108731 bytes, free space 2096480 bytes, window size 2097152 bytes
E/CursorWindow: Failed to read row 0, column 0 from a CursorWindow which has 0 rows, 9 columns.

1 Ответ

0 голосов
/ 05 марта 2019

Вы храните данные строки (обычно один из столбцов содержит объект мультимедиа (например, изображение) в виде большого двоичного объекта) в базе данных, которая слишком велика для обработки курсором.То есть делается попытка извлечь 2108731 байтов, что превышает 2 МБ (2097152 байта), выделенных окну курсора.

Вы не можете использовать методы курсора Android SDK (без изменения)для извлечения такого большого количества данных, даже если вы можете сохранить такое количество.

Исправление заключается в том, чтобы сохранить эти данные за большим двоичным объектом (обычно изображения) в виде файла и затем сохранить ссылку на файл(например, его путь или его часть) в базе данных.

Эта ссылка содержит примеры (на основе изображений) и более полный обзор проблемы.

Альтернативно, это показывает, как можно сохранить такое изображение или изображения, разделив данные на части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...