SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite retornou um código de erro de 14


Isso pode ser um pouco tarde, mas espero que ajude para quem tiver esse problema (já que não consigo encontrar uma solução definitiva).

Acho que sei o motivo dessa causa (pelo menos para o meu caso). Procurando no DDMS --> Explorador de Arquivos , você perceberia que a Pasta do banco de dados (/data/data//databases/) não existe, razão pela qual o aplicativo não pode criar o arquivo de banco de dados nessa pasta inexistente. Se você puder criar uma pasta de bancos de dados de alguma maneira, poderá evitar esse problema.

Como sou preguiçoso, usei a pasta /data/data//files/ quando estou no modo Emulador. Você pode obter os arquivos dir usando isto:
context.getFilesDir().getPath()

Isso funcionou lindamente para mim no emulador.

Espero que isso ajude alguém.

Caso queira ver algum código:
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:Tentei fazer login no Facebook (meu aplicativo tem integração com o FB) na pasta Emulador e /databases apareceu depois disso (e persistiu). Não tenho certeza do que aconteceu, mas é possível criar essa pasta de alguma forma. Algo para outro especialista por aqui esclarecer.