Huawei / Устройства чести и исключение SQLiteBlobTooBigException - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть исключение SQLiteBlobTooBigException для huawei / honor устройств Android 9.0 только . Для 5к активных установок. В чем дело?

    String selectQuery = "SELECT  * FROM " + tableName;
    if(!db.isOpen()){db=this.getWritableDatabase();}
    Cursor cursor = db.rawQuery(selectQuery, null);
    i = cursor.getCount();

Другие устройства работают хорошо. изображение здесь

1 Ответ

0 голосов
/ 30 сентября 2019

Как говорится в сообщении, BLOB-объект (байт []) слишком велик, чтобы поместиться в окно курсора (4 МБ). Окно курсора является буфером для строк.

BLOB-объекты не рекомендуются, поскольку их можно хранить с размером, превышающим размер, который можно получить с помощью API-интерфейса SQLite SDK. То есть, при вставке строки буфер как таковой отсутствует, поэтому ограничение размера не применяется.

Разрешение заключается в том, чтобы сохранить байт [] в файле, а затем сохранить путь к файлу вбаза данных.

...