J'ai créé une base de données SQLite sur Android. Le programme peut lire/écrire dans la base de données de sorte que le fichier de base de données a évidemment été créé. Le SQLiteDatabase.mPath est défini sur
db.mPath = "/data/data/dev.client.Android/databases/clientDB.db"
mais lorsque je parcours les répertoires de l'appareil, je ne trouve pas le fichier clientDB.db. J'ai regardé à l'intérieur du répertoire de données mais il semble être vide.
Quelqu'un sait-il ce qui pourrait mal se passer ici?
Si vous voulez dire que vous avez visité /data
et n'y a rien trouvé, et vous examinez un morceau ordinaire de Android matériel, ce qui est attendu. DDMS n'a pas la permission de parcourir /data
.
Cependant, au moins si votre application est compilée en mode débogage, vous pouvez utiliser le adb pull
commande sur la console pour télécharger directement votre fichier.
essayez getDatabasePath sur ContextWrapper ( http://developer.Android.com/reference/Android/content/ContextWrapper.html ). Si vous êtes dans une classe d'activité ou d'application, essayez:
File dbFile = getDatabasePath(MY_DB_NAME);
Log.i(dbFile.getAbsolutePath());
En supposant que c'est dans /data/data/my.package.name/databases/
est mauvais car il n'y a aucune garantie que les données n'ont pas été déplacées vers la carte SD ou que l'appareil/OS vient de choisir un répertoire de données différent.
En mode débogage, vous pouvez utiliser adb Shell et parcourir le contenu du répertoire. Dans le shell, vous pouvez appeler sqlite3 /data/data/dev.client.Android/databases/clientDB.db pour analyser la base de données.