2009-07-09 8 views
43

Creé una base de datos SQLite en un dispositivo Android. El programa puede leer/escribir en la base de datos, por lo que obviamente se creó el archivo de la base de datos. El SQLiteDatabase.mPath se establece enAndroid: ¿Dónde se almacenan los archivos de la base de datos?

db.mPath = "/data/data/dev.client.android/databases/clientDB.db" 

pero cuando hojeo los directorios en el dispositivo no puede localizar el archivo clientDB.db. Miré en el directorio de datos pero parece estar vacío.

¿Alguien sabe qué podría estar mal aquí?

Respuesta

28

Si quiere decir que visitó /data y no encontró nada en él, y está examinando una pieza común de hardware de Android, eso es lo que se espera. DDMS no tiene permiso para navegar a través del /data.

Sin embargo, al menos si su aplicación está compilada en modo de depuración, puede usar el comando adb pull en la consola para descargar el archivo directamente.

+0

En el administrador de archivos de mi dispositivo busqué 'filename.sqlite' pero no obtuve ningún resultado? ¿Puedes decir por qué? –

+0

@VivekWarde: no puede explorar el almacenamiento interno en un dispositivo de producción. – CommonsWare

+0

Entonces, ¿dónde puedo ver mi base de datos sqlite que no sea la carpeta de activos –

6

En el modo de depuración, puede usar adb shell y explorar el contenido del directorio. En el shell puede llamar al sqlite3 /data/data/dev.client.android/databases/clientDB.db para analizar el DB.

+0

Intenté escribir esto en la pestaña Terminal en Android Studio mientras se depuraba la aplicación pero no reconocía el comando. El directorio de la aplicación en mi computadora era la ruta en la consola. ¿Es aquí donde debería ingresarlo? –

33

prueba getDatabasePath en ContextWrapper (http://developer.android.com/reference/android/content/ContextWrapper.html). Si se encuentra en un intento de actividad o aplicación de la clase:

File dbFile = getDatabasePath(MY_DB_NAME); 
Log.i(dbFile.getAbsolutePath()); 

Sólo asumiendo su en /data/data/my.package.name/databases/ es malo ya que no hay garantía de que los datos no se ha movido a la tarjeta SD o el dispositivo/OS acaba de decidir sobre una diferente directorio de datos.

Cuestiones relacionadas