Bonjour,
A l'aide de quelques tutoriaux sur le net, je tente désespérément d'avancer dans mon dev.
Pour commencer, je veux m'assurer que la base de données sur laquelle je suis censé travailler existe.
Pour cela, j'utilise le code suivant :
Si cette base n'existe pas, je la crée dynamiquement en partant d'une base de données connue stockée dans le dossier Assets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public static final String DATABASE_PATH = "/data/data/com.engi.aquapalm/databases/"; public static final String DATABASE_NAME = "aqua.db"; private boolean DBExists() { SQLiteDatabase db = null; try { String databasePath = DATABASE_PATH + DATABASE_NAME; db = SQLiteDatabase.openDatabase(databasePath, null, SQLiteDatabase.OPEN_READWRITE); db.setLocale(Locale.getDefault()); db.setLockingEnabled(true); db.setVersion(1); } catch (SQLiteException e) { Log.e("SqlHelper", "database not found"); } if (db != null) { db.close(); } return db != null ? true : false; }
Le problème dans ce code est qu'il ne s'exécute jamais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 try { String dbFilePath = DATABASE_PATH + DATABASE_NAME; OutputStream databaseOutputStream = new FileOutputStream(dbFilePath); InputStream databaseInputStream; databaseInputStream = myContext.getAssets().open(DATABASE_NAME); byte[] buffer = new byte[1024]; int length; while ((length = databaseInputStream.read(buffer)) > 0) { databaseOutputStream.write(buffer); } //close the streams databaseInputStream.close(); databaseOutputStream.flush(); databaseOutputStream.close(); } catch (FileNotFoundException e) { throw new Error("File not found."); } catch (IOException e) { throw new Error("Problem copying database from resource file."); }
Dès la 2ème ligne (OutputStream ...), une exception FileNotFound est déclenchée.
Je ne comprends pas : à ce stade, on est censé créer le fichier, alors pourquoi j'ai ce type d'exception ?
Voilà deux jours que je cherche à comprendre, mais ça dépasse mes compétences de piètre développeur android ...
Toute aide sera la bienvenue.
Merci d'avance...
Partager