SQLite debuggin, speicherort

D

derdiedas

Neues Mitglied
0
Hallo Zusammen,

ich schreibe gerade eine Android-Anwendung, hierbei lege ich daten in der sql-db ab. Hierbei hat sich wohl ein Fehler eingeschlichen. Um nachzuvollziehen ob überhaupt was in der DB- gespeichert wurde, würde ich gern mal direkt in die DB des emulierten Phones schauen, weiß aber nicht wie ich hierauf zugreifen kann. Am liebsten würde ich mit dem sqlite browser auf die DB zugreifen, konsole würde aber auch reichen.

habe in einema anderen Beitrage gelesen, dass man folgendermaßen auf die DB zugreifen kann. Ich habe versucht mit hilfe des Terminals auf die DB zuzugreifen, aber schon bei ersten Befehl bekomme ich die meldung "permission denied"

adb shell
su
sqlite3 data/data/<packagename>/databases/<dbname>
select * from <tablename>;
.quit


Wäre nett wenn Ihr mir erklären würdet wie ich auf die DB zugreifen kann und wo sie genau liegt bzw. wie ich es überprüfen kann ob sie überhaupt im oben genannten package liegt.

Vielen Dank im vorraus.
 
um das zu machen braucht man glaub ich root rechte, die hat man normalerweise nicht

von daher wirds schwer
 
Mit dem von dir geposteten Befehl komme ich schon in die Datenbank, allerdings nur im Emulator, nicht auf einem (gerooteten) Gerät.

Es gibt z.B. auch den Befehl ".databases", der dir alle vorhandenen Datenbanken auflistet, vielelicht ist deine gar nicht angelegt worden? Obwohl dann sollte kein "Permission denied" kommen, bei mrig eht allerdigns auf dem Emulator alles ohne root-Rechte.
 
Ich habs zwar nur gelesen, aber Motorlas Dev Studio soll einen eingebauten SQLite Browser haben.
 
derdiedas schrieb:
Ich habe versucht mit hilfe des Terminals auf die DB zuzugreifen, aber schon bei ersten Befehl bekomme ich die meldung "permission denied"

adb shell
su
sqlite3 data/data/<packagename>/databases/<dbname>
select * from <tablename>;
.quit

Android hat auch Verzeichnisse im Path, auf die man ohne root keinen Zugriff hat, und das verursacht auch ein "permission denied" statt einem "not found", wenn man nicht existierende Befehle eintippt.
Ich fang daher mal ganz von vorn an: "Mit Hilfe des Terminals" ist aber kein Terminal auf dem Handy selbst, in das du "adb shell" eintippst?
 
Fr4gg0r schrieb:
Ich habs zwar nur gelesen, aber Motorlas Dev Studio soll einen eingebauten SQLite Browser haben.

Ich hab mir mal das MOTODEV Developer Studio runtergeladen (von MOTODEV > Documentation & Tools > MOTODEV Studio > Download MOTODEV Studio for Android ), bzw. das Plugin für Eclipse (was glaub ich aufs selbe herauskommt).

Und man kommt in Datenbanken und kann sich auch den Inhalt anzeigen lassen. Bisher hab ich das allerdings nur für Anwendungen auf dem Emulator und nur für die vorinstallierten Anwendungen geschafft. Kann heut abend auch mal einen Screenshot posten, vielleicht hat jemand eine Idee wie man auch auf ein Gerät kommt, und, was ja eigentlich das Ziel ist, in eigene Anwendungen!
 
das geht auch nur am emulator, da dieser root zugang erlaubt.

wenn das telefon auch root zungang erlaubt, dann kannst du dort auch die sql dbs anschauen
 
Root Zugang ist vorhanden, aber das ganze ist wohl grad noch unter Entwicklung.

Ich versuche grade folgenden Tipp von hier: Database Explorer - MOTODEV Discussion Boards
There is a workaround that you may need to apply to talk to a device. In your Studio installation, find the file named ./configuration/config.ini. Change the value of osgi.bundles.defaultStartLevel from '4' to '1'.
Würde aber gerne ohne Änderungen in irgendelchen ini-Files weitermachen ;-)

edit: Ich hab die Änderung von 4 auf 1 jetzt in 2 verschiedenen configs gemacht, (ich habe eine bestehende Galileo Installation mit dem Plugin erweitert), einmal in der /configuration/config.ini und in /plugins/com.motorola.studio.android.product_1.0.0.release/config.ini. Geändert hat sich nichts.. In allen möglichen Varianten steht nur hinter dem Gerät in der Liste (109 applications filtered) und manchmal bleibt die Berechnung wohl hängen, dann steht stattdessen unter dem Pfeil in der Zeile unter dem Gerät: "Waiting for the device to load". Schade.
 
Zuletzt bearbeitet:
swordi schrieb:
das geht auch nur am emulator, da dieser root zugang erlaubt.
Zumindest beim Milestone scheint auch das Kommandozeilen-Tool von SQLite nicht auf dem Gerät zu sein, oder zumindest nicht im Standard-Pfad.
 

Ähnliche Themen

R
Antworten
6
Aufrufe
982
swa00
swa00
M
Antworten
5
Aufrufe
1.044
markusk73
M
Zurück
Oben Unten