To může být trochu pozdě, ale doufám, že to pomůže každému, kdo má tento problém (protože nemohu najít definitivní řešení).
Myslím, že znám důvod této příčiny (alespoň pro můj případ). Podívejte se do DDMS --> Průzkumník souborů , zjistíte, že složka databáze (/data/data//databases/) neexistuje, a proto aplikace nemůže vytvořit soubor databáze v této neexistující složce. Pokud můžete nějakým způsobem vytvořit složku databází, můžete se tomuto problému vyhnout.
Protože jsem líný, použil jsem právě složku /data/data//files/ když jsem v režimu emulátoru. Adresář souborů můžete získat pomocí tohoto:
context.getFilesDir().getPath()
V emulátoru mi to fungovalo krásně.
Doufám, že to někomu pomůže.
V případě, že chcete vidět nějaký kód:
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);
}
EDIT:Zkusil jsem se přihlásit na Facebook (moje aplikace má integraci FB) ve složce Emulator a poté se objevila složka /databases (a přetrvávala). Nejsem si jistý, co se stalo, ale je možné tu složku nějak vytvořit. Něco pro dalšího experta tady, aby to osvětlilo.