studio - La carpeta "datos" de Android Device Monitor está vacía
sqlite android studio 2018 (8)
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:
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 <remote> <locale>
, como por ejemplo:
adb pull /data/data/<app name>/databases/<database> .
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.
En cmd GoTo:
C:/Users/UserName/android-sdks/platform-tools
Ejecutar:
adb root
Hecho
Hay dos formas de navegar por la carpeta de datos del dispositivo (datos / datos).
- 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)
- 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
- Añádalo a continuación en el archivo gradle de su aplicación (Módulo: aplicación)
''compilar'' com.facebook.stetho: stetho: 1.4.2 ''
- 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
Tu DB
Espero que esto ayude a todos! :)
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.
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?
Si alguien está teniendo el problema indicado, siga los pasos a continuación en la ventana del terminal:
- Navegue a / Users / Username / Library / Android / sdk / platform-tools
- Ejecutar ./adb root
Eso es. Problema resuelto.
Tuve el mismo problema con API_25
, no funcionó para mí.
Configure un API_23 emulator
, funcionará en API_23
.