Это может быть немного поздно, но надеюсь, что это поможет тем, кто сталкивается с этой проблемой (поскольку я не могу найти окончательное решение).
Я думаю, что знаю причину этой причины (по крайней мере,для моего случая).Посмотрев в DDMS -> File Explorer , вы поймете, что папка базы данных (/ data / data // database /) не существует,именно поэтому приложение не может создать файл базы данных в этой несуществующей папке.Если вы можете каким-либо образом создать папку базы данных, вы можете избежать этой проблемы.
Поскольку я ленив, я просто использовал / data / data // files / folder когда я в режиме эмулятора.Вы можете получить файлы dir, используя это:
context.getFilesDir().getPath()
Это прекрасно работает для меня в эмуляторе.
Надеюсь, это кому-нибудь поможет.
В случае, если вы хотите увидетьнекоторый код:
String dbFilename = "example.db";
try
{
File databaseFile = getDatabasePath(dbFilename);
SQLiteDatabase _db = SQLiteDatabase.openOrCreateDatabase(databaseFile);
} catch (Exception e)
{
String databasePath = getFilesDir().getPath() + "/" + dbFilename;
File databaseFile = new File(databasePath);
_db = SQLiteDatabase.openOrCreateDatabase(databaseFile);
}
РЕДАКТИРОВАТЬ: я попытался войти в Facebook (мое приложение имеет интеграцию с FB) в папке эмулятора и / базы данных появился после этого (и сохранился).Не уверен, что случилось, но можно как-то создать эту папку.Кое-что для другого эксперта здесь, чтобы пролить свет.