La carpeta “datos” de Android Device Monitor está vacía

He probado la creación, inserción y recuperación de datos en mis aplicaciones db, y sé que funciona mediante el uso de declaraciones de registro.

Sin embargo, deseo agilizar las pruebas y usar el Android Device Monitor. Sin embargo, aunque el archivo db existe y los datos están almacenados, al acceder a continuación, la carpeta de data está vacía:

enter image description here

Por qué sería este el caso? ¿Cómo se puede configurar para mostrar el archivo db y los contenidos?

Resolviendo el problema usando un emulador

La carpeta /data pueden estar vacíos porque te faltan los permisos adecuados. Para resolverlo, tuve que ejecutar los siguientes comandos.

 adb shell su 

Esos comandos inician un shell en el emulador y le otorgan derechos de root. El comando adb se encuentra en la carpeta platform-tools del SDK de Android, normalmente instalado en ~/Library/Android/sdk/ en MacOS.

 chmod -R 777 /data 

Modifique los permisos de la carpeta (y subcarpetas recursivamente) /data para que aparezcan en la herramienta A ndroid Device Monitor .

 adb root 

Finalmente, este comando reinicia adb como root. Tenga cuidado, solo funciona en construcciones de desarrollo (típicamente construcciones de emuladores).

Después, puede ver el contenido de la carpeta /data y transferir los datos ubicados en. También puede hacerlo en la consola, usando adb pull , como por ejemplo:

 adb pull /data/data//databases/ . 

Además de las respuestas de @Steven K: si desea obtener acceso a sus datos sin tener que rootear su dispositivo real, necesita ejecutar su aplicación en un emulador con API 23 (o inferior). Es un problema conocido que las API superiores a 23 pueden causar problemas al implementar Android Device Monitor.

No está vacío … simplemente no tienes permiso para ver esa carpeta en un dispositivo.

Pruébalo en un simulador y te funcionará, ya que tienes acceso de root.

Si alguien está teniendo el problema indicado, siga los pasos a continuación en la ventana del terminal:

  1. Navegue a / Users / Username / Library / Android / sdk / platform-tools
  2. Ejecutar ./adb root

Eso es. Problema resuelto.

Puede ser más fácil almacenar la base de datos en una carpeta pública durante el desarrollo.

O puedes ver esta publicación:

¿Cómo acceder a la carpeta de datos / datos en un dispositivo Android?

Hay dos formas de navegar por la carpeta de datos del dispositivo (datos / datos).

  1. Necesita tener un teléfono con acceso raíz para explorar la carpeta de datos usando ADM (Android Device Monitor).

Ubicación de ADM – (YOUR_SDK_PATH \ Android \ sdk \ tools)

  1. Necesita ejecutar ADB en modo raíz, haga esto ejecutando: adb root

Si solo quieres ver tus Tablas y DB, entonces la mejor manera es usar Stetho . Se desarrolló una herramienta genial para todos los desarrolladores de Android que utilizan SQLite buit de Facobook developed .

Steps to use the tool

  1. Añádalo a continuación en el archivo gradle de su aplicación (Módulo: aplicación)

‘comstackr’ com.facebook.stetho: stetho: 1.4.2 ‘

  1. Agregue líneas de código debajo en su método Activity onCreate ()
 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); setContentView(R.layout.activity_main); } 

Ahora, crea tu aplicación. Cuando la aplicación se está ejecutando, puedes navegar por la base de datos de tu aplicación abriendo Chrome en la url:

 chrome://inspect/#devices 

Las capturas de pantalla de los mismos son las siguientes_

ChromeInspact

ChromeInspact

Tu DB

Tu DB

Espero que esto ayude a todos! 🙂

Tuve el mismo problema con API_25 , no funcionó para mí.

Configure un API_23 emulator , funcionará en API_23 .

En cmd GoTo:

 C:\Users\UserName\android-sdks\platform-tools 

Ejecutar:

 adb root 

Hecho