webentwicklung-frage-antwort-db.com.de

Der Ordner "data" des Android-Gerätemonitors ist leer

Ich habe das Erstellen, Einfügen und Abrufen von Daten in der Apps-Datenbank getestet und weiß, dass dies durch die Verwendung von Protokollanweisungen funktioniert. 

Ich möchte jedoch das Testen beschleunigen und den Android Device Monitor verwenden. Obwohl die Datenbank vorhanden ist und Daten gespeichert werden, ist der data-Ordner beim Zugriff auf unten leer:

 enter image description here

Warum wäre das so? Wie kann dies konfiguriert werden, um die DB-Datei und den Inhalt anzuzeigen?

39
Sauron

Lösung des Problems mithilfe eines Emulators

Der Ordner /data kann leer sein, da Ihnen die richtigen Berechtigungen fehlen. Um das Problem zu lösen, musste ich die folgenden Befehle ausführen.

adb Shell
su

Diese Befehle starten eine Shell im Emulator und gewähren Ihnen Root-Rechte. Der Befehl adb befindet sich im Ordner platform-tools des Android SDK, der normalerweise unter ~/Library/Android/sdk/ unter MacOS installiert ist.

chmod -R 777 /data

Ändern Sie die Berechtigungen des Ordners (und der Unterordner rekursiv) /data, um sie im Tool A ndroid Device Monitor anzuzeigen.

adb root

Schließlich startet dieser Befehl adb als root neu. Seien Sie vorsichtig, es funktioniert nur bei Entwicklungs-Builds (normalerweise Emulatoren-Builds).

Anschließend können Sie den Inhalt des Ordners /data sehen und die darin enthaltenen Daten übertragen. Sie können dies auch in der Konsole mit adb pull <remote> <locale> tun, z.

adb pull /data/data/<app name>/databases/<database> .
37
ZenLulz

Zusätzlich zu den Antworten von @Steven K: Wenn Sie Zugriff auf Ihre Daten erhalten möchten, ohne Ihr echtes Gerät zu rooten, müssen Sie Ihre App in einem emulator mit API 23 (oder niedriger) ausführen. Es ist ein bekanntes Problem , dass APIs über 23 Probleme bei der Bereitstellung von Android Device Monitor verursachen können.

24
Joni

Es ist nicht leer ... Sie haben einfach keine Berechtigung, diesen Ordner auf einem Gerät anzuzeigen.

Versuchen Sie es in einem Simulator und es wird für Sie funktionieren, da Sie Root-Zugriff haben.

8
Steven K

Wenn das angegebene Problem auftritt, führen Sie die folgenden Schritte im Terminalfenster aus:

  1. Navigieren Sie zu/Users /Username/ Library/Android/sdk/platform-tools
  2. Führen Sie ./adb root aus

Das ist es. Problem gelöst. 

6

Es kann einfacher sein, die Datenbank während der Entwicklung in einem öffentlichen Ordner zu speichern. 

Oder Sie können diesen Beitrag sehen:

Wie kann ich auf Daten/Datenordner auf einem Android-Gerät zugreifen?

5
Steven K

Es gibt zwei Möglichkeiten, um den Ordner mit den Daten (Daten/Daten) Ihres Geräts zu durchsuchen.

  1. Sie benötigen ein Telefon mit Rootzugriff, um mit ADM (Android Device Monitor) den Datenordner durchsuchen zu können. 

ADM-Speicherort - (YOUR_SDK_PATH\Android\sdk\tools)

  1. Sie müssen ADB im Root-Modus ausführen. Führen Sie dazu Folgendes aus: adb root

Wenn Sie nur Ihre DB & Tables sehen möchten, verwenden Sie am besten Stetho. Ziemlich cooles Tool für jeden Android-Entwickler, der SQLite buit von Facobook developed verwendet. 

Steps to use the tool

  1. Fügen Sie unten dependeccy in der Gradle-Datei Ihrer Anwendung hinzu (Modul: app)

'kompilieren' com.facebook.stetho: stetho: 1.4.2 '

  1. Fügen Sie in Ihrer Activity onCreate () - Methode folgende Codezeilen hinzu
@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 Stetho.initializeWithDefaults(this);
 setContentView(R.layout.activity_main);
 }

Erstellen Sie jetzt Ihre Anwendung. Wenn die App ausgeführt wird, können Sie Ihre App-Datenbank durchsuchen, indem Sie Chrome in der URL öffnen:

chrome://inspect/#devices

Screenshots davon sind als unter_

ChromeInspact

 ChromeInspact

Ihre Datenbank 

 Your DB

Hoffe das wird allen helfen! :)

4
Rupesh Yadav

Ich hatte das gleiche Problem mit API_25, es hat bei mir nicht funktioniert.

Konfigurieren Sie einen API_23 emulator, es funktioniert mit API_23.

1
Amir De

In cmd GoTo:

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

Ausführen:

adb root

Erledigt

0
Hecho

Wenn Sie mit Windows arbeiten, folgen Sie diesen Anweisungen Schritt für Schritt:

  1. Starten Sie Ihre App im Android-Emulator.
  2. Öffnen Sie dann den Befehl Eingabeaufforderung als Administrator und navigieren Sie zum sdk-Pfad. Beispiel: cd C:\Android\sdk\platform-tools
  3. Typ adb root
  4. Geben Sie dann adb pull /data/data/ name-of-your-package /databases/name-of-your-database ein.
  5. Sie finden Ihre Datenbank im Ordner platform-tools.

Anschließend können Sie die Sqlite Manager-Erweiterung in Google Chrome über den Chrome Webstore installieren und zum Anzeigen und Verwalten der exportierten Datenbank verwenden.

Wenn Sie ein gerootetes Telefon haben, können Sie den oben beschriebenen Anweisungen folgen.

0
Nelson Guest