Я бы сказал, что есть несколько возможных причин:
1) Файл SQLite может быть создан на SD-карте только для многих устройств.Поэтому, если вы пытаетесь использовать внутреннюю память, убедитесь, что ваше целевое устройство поддерживает ее.Нет ресурса, который четко говорит - да / нет.Факел и все новые устройства на 7 ОС поддерживают его.
2) Файловая система SD-карты не доступна сразу после запуска устройства.Итак, у вас есть приложение автозапуска, вам нужно подождать, пока система не сообщит, что оно готово к использованию.Взгляните на FileSystemListener
класс.
3) Во время отладки / зарядки SD-карта установлена (зависит от настроек устройства).Поэтому SD-карта также недоступна в течение этого времени.
4) Файловая система заполнена.
5) БД не закрыта должным образом во время последнего запуска приложения или другое приложение использует его сейчас.