Я пытаюсь использовать SQLiteAssetHelper, чтобы скопировать мою предварительно заполненную базу данных в приложение для Android. . У меня есть Android-7 на моем устройстве (телефон Nvidia Shield и Motorola). В меню «Настройки» -> «Приложение» -> «MyApp» я включил разрешения Календарь, Местоположение и Хранилище.
У меня также есть следующие разрешения в файле манифеста
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Когда я храню свою базу данных в папке assets/databases/databases
, я получаю следующее исключение:
Вызвано: com.readystatesoftware.sqliteasset.SQLiteAssetHelper$SQLiteAssetException: невозможно записать /data/user/0/com.funcheap.funmapsf/databases/databases/MySFfuncheapDatabase.db в данные
Когда я храню свою базу данных в папке assets/databases
, я получаю следующее исключение:
Причина: com.readystatesoftware.sqliteasset.SQLiteAssetHelper$SQLiteAssetException: отсутствуют файлы баз данных/баз данных/MySFfuncheapDatabase.db (или архив .zip, .gz) в ресурсах или целевая папка недоступна для записи
К сожалению, этот SO вопрос мне не помогает
/data/.../<your app>/...
). Используется только для внешнего хранилища (обычно/storage/emulated/0/...
) - person Jeffrey Blattman   schedule 24.10.2017SQLiteAssetHelper
. Я думаю, что ваша проблема заключается в имени базы данных, которое вы предоставляете конструкторуSQLiteAssetHelper
. См. этот образец приложения, чтобы узнать, как использоватьSQLiteAssetHelper
. - person CommonsWare   schedule 24.10.2017/data/user/0/com.funcheap.funmapsf/databases/MySFfuncheapDatabase.db
вместо/data/user/0/com.funcheap.funmapsf/databases/databases/MySFfuncheapDatabase.db
? - person MikeT   schedule 24.10.2017