J'essaie de copier un fichier .db préchargé créé par DB Browser pour SQLite à mon application faite dans Codename One. Je l'ai placé l'application dans mon dossier src et le dossier theme.res (sous Données) et ont ajouté le code suivant dans ma méthode init()
de la classe d'ouverture de mon application:Comment résoudre les erreurs dans Codename One lors du chargement du fichier sqlite db (simulateur & périphérique)?
String path = Display.getInstance().getDatabasePath("mydb.db");
Log.p("init path = " + path);
FileSystemStorage fs = FileSystemStorage.getInstance();
if(path != null && !fs.exists(path)) {
Log.p("path != null ");
try (OutputStream os = fs.openOutputStream(path);
InputStream is = Display.getInstance().getResourceAsStream(getClass(), "/mydb.db");
) {
Util.copy(is, os);
} catch (IOException err) {
Log.e(err);
//copyDb(path);
}
}
path
retourne une variable. Lors de l'exécution du simulateur , je reçois ce message d'erreur:
java.sql.SQLException: [SQLITE_CORRUPT] The database disk image is malformed (database disk image is malformed)
Sur mon appareil Android Je reçois ce message:
Exception: android.database.sqlite.SQLiteException - no such table:
Toutes les idées sur la façon de résoudre ce problème?
Merci!
Quelles sont les valeurs de 'UCSConstantsAndCommons.DB' &' UCSConstantsAndCommons.DB_PATH' –
"mydb.db" et "/mydb.db" respectivement. J'ai fait ces changements ci-dessus. – Schreiby