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:
Warum wäre das so? Wie kann dies konfiguriert werden, um die DB-Datei und den Inhalt anzuzeigen?
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> .
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.
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.
Wenn das angegebene Problem auftritt, führen Sie die folgenden Schritte im Terminalfenster aus:
Das ist es. Problem gelöst.
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?
Es gibt zwei Möglichkeiten, um den Ordner mit den Daten (Daten/Daten) Ihres Geräts zu durchsuchen.
ADM-Speicherort - (YOUR_SDK_PATH\Android\sdk\tools)
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
'kompilieren' com.facebook.stetho: stetho: 1.4.2 '
@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
Ihre Datenbank
Hoffe das wird allen helfen! :)
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
.
In cmd GoTo:
C:\Users\UserName\Android-sdks\platform-tools
Ausführen:
adb root
Erledigt
Wenn Sie mit Windows arbeiten, folgen Sie diesen Anweisungen Schritt für Schritt:
cd C:\Android\sdk\platform-tools
adb root
adb pull /data/data/ name-of-your-package /databases/name-of-your-database
ein.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.