sql >> Database teknologi >  >> RDS >> SQLite

SQLite returnerede en fejlkode på 14

Dette kan være lidt sent, men håber dette hjælper for dem, der får dette problem (da jeg ikke kan finde en endelig løsning).

Jeg tror, ​​jeg kender årsagen til denne årsag (i hvert fald for mit tilfælde). Søger i DDMS --> File Explorer , ville du indse, at Databasemappen (/data/data//databases/) eksisterer ikke, hvorfor applikationen ikke kan oprette databasefilen i den ikke-eksisterende mappe. Hvis du kan oprette en databasemappe på en eller anden måde, kan du undgå dette problem.

Fordi jeg er doven, brugte jeg lige mappen /data/data//files/ når jeg er i emulatortilstand. Du kan hente filerne dir ved at bruge denne:

context.getFilesDir().getPath()

Dette fungerede smukt for mig i emulatoren.

Håber dette hjælper nogen.

Hvis du vil se noget kode:

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:Jeg prøvede at logge ind på Facebook (min app har FB-integration) på emulatoren og /databases-mappen dukkede op efter det (og fortsatte). Ikke sikker på, hvad der skete, men det er muligt at oprette den mappe på en eller anden måde. Noget for en anden ekspert her omkring at kaste lys over.



  1. Til forsvar for sar (og hvordan man konfigurerer det)

  2. AVG() – Beregn den gennemsnitlige værdi af en kolonne i MySQL

  3. Sådan overvåger du PostgreSQL 12-ydelse med OmniDB – del 1

  4. Logiske databasesikkerhedskopier ved hjælp af MySQL Shell