- - работа с БД строится в потомке класса SQLiteOpenHelper;
- на этапе первого запуска я переношу её в директорию "/data/data/<PACKAGE NAME>/databases/";
- для выборки данных используются класс Cursor;
- работа с БД в режиме только чтение.
Попробовал дать разрешение на запись и стала вываливаться другое исключение: SQLiteCantOpenDatabaseException: unable to open database file (code 14). Это исключение имеет уровень загадочности 80-го уровня, поэтому перечитал кучи статей и мануалов, я не нашёл действенных решений, потому что ни одно из них не помогло. Как и всем вопрошавшим в интернете. Но натолкнуло на мысль, что всё зависит от конкретной версии Андроида.
Тогда я подключил другой Андроид аппарат и получил другое исключение: Cursor window allocation of 2048 kb failed. В результате выяснилось, что оно может возникать, если очень часто использовать и не закрывать классы Cursor. А именно это и происходило в примерах по sqlite, которые я брал за основу.
Как не странно, но решение проблемы с исключением unable to open database file (code 14) я нашёл в обязательном закрытии класса Cursor после его использования через его метод close().