SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite hat einen Fehlercode von 14 zurückgegeben

Dies ist vielleicht etwas spät, aber ich hoffe, das hilft allen, die dieses Problem haben (da ich keine endgültige Lösung finden kann).

Ich glaube, ich kenne den Grund für diese Ursache (zumindest für meinen Fall). Suchen Sie im DDMS --> Datei-Explorer , würden Sie feststellen, dass der Datenbankordner (/data/data//databases/) nicht vorhanden ist, weshalb die Anwendung die Datenbankdatei nicht in diesem nicht vorhandenen Ordner erstellen kann. Wenn Sie auf irgendeine Weise einen Datenbankordner erstellen können, können Sie dieses Problem vermeiden.

Da ich faul bin, habe ich einfach den Ordner /data/data//files/ verwendet wenn ich im Emulatormodus bin. Sie können das Dateiverzeichnis folgendermaßen abrufen:

context.getFilesDir().getPath()

Das hat bei mir im Emulator wunderbar funktioniert.

Hoffe, das hilft jemandem.

Falls Sie Code sehen möchten:

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);
}

BEARBEITEN:Ich habe versucht, mich bei Facebook anzumelden (meine App hat FB-Integration) auf dem Emulator und /databases Ordner erschien danach (und blieb bestehen). Ich bin mir nicht sicher, was passiert ist, aber es ist möglich, diesen Ordner irgendwie zu erstellen. Etwas für einen anderen Experten hier in der Nähe, um Licht ins Dunkel zu bringen.