EDIT: Enlevé code précédent pour plus de clartéBase de données SQLite n'existe pas Android
Sur suggestion, j'ai ajouté des messages du journal pour voir où je suis se boucha.
Il semble qu'il est de lancer correctement l'appel à checkDatabase()
, mais ne retourne pas à copier la base de données. Ceci est ma méthode checkDatabase()
:
File dbFile = new File(DB_PATH + DB_NAME);
if(dbFile.exists()){
Log.d("True","Returned true");
return true;
}else{
dbFile.getParentFile().mkdirs();
Log.d("CreatedPath","Made the right directory");
return false;
}
Dans les journaux de débogage je peux voir mon message « créé Path ». Donc ça va si loin.
Il retourne alors faux, ce qui devrait commencer ceci:
public void createDataBase() throws IOException{
boolean dbExist = checkDatabase();
if (!dbExist){
this.getReadableDatabase();
// Calling this method an empty database will be
// created into the default system path of
// the app so we can overwrite with FirstDB.
try{
copyDatabase();
}catch (IOException e) {
throw new Error("Error copying database");
}
}
}
Cependant, je ne vois les messages du journal du tout. C'est comme si cela renvoyait faux et continue de bouger. J'ai besoin de rappeler le createDataBase()
?
S'il vous plaît envisager d'utiliser le 'SQLiteAssetHelper' testé, débogué et pris en charge à la place de ce code: https://github.com/jgilfelt/android-sqlite-asset-helper – CommonsWare
Cela n'a pas fonctionné. Même un peu. – Phoenix
Cela fonctionne pour beaucoup d'autres personnes, contrairement à la base de code à partir de laquelle vous travaillez, avec laquelle beaucoup de gens ont des problèmes, comme en témoignent toutes les questions de StackOverflow à ce sujet. – CommonsWare