App läuft auf Emulator aber nicht auf dem Handy

S

spike78

Neues Mitglied
0
Hallo zusammen,

ich habe mir eine App geschrieben, die Einträge aus einer SQLLite DB ausliest und diese in einer Liste ausgibt. In meinem Emulator läuft die Anwendung ohne Problem. Jetzt habe ich mir über Eclipse ein APK File erstellt und das dann auf meinem Handy installiert. Die Anwendung startet auch noch, aber sobald ich an die Stelle komme wo die Datenbank geöffnet werden soll und die Einträge in die Liste kommen, bricht meine App ab. Kann es sein das meine DB nicht installiert wurde oder muss ich noch was bestimmtes einstellen?

Danke und Gruß

Spike
 
Wie "installierst" du den deine DB?
Die muss ja irgendwie angelegt werden ...
 
wie wärs, wenn du mal den fehler posten würdest? ( => logcat )
 
wenn du in deinem handy auf einstellungen -> anwendungen -> entwicklung gehst und bei USB-Debugging ein häkchen setzt, dann kannst du deine app über eclipse auf dem handy installieren / starten und brauchst keine apk zu erstellen. den fehler hab ich anfangs auch gemacht ;-)

wie hast du deine DB auf den emulator bekommen? mit adb gepusht? das wird auf dem handy nicht funktionieren, keine root-rechte. wenn deine db anfangs keine werte hat, kannst du sie mit create table scripts anlegen. ansonsten ins assets-verzeichnis kopieren und beim starten der app mußt du dann die db aufs handy kopieren.

hier noch ein link dazu: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
 
Hi,

folgendes hab ich gemacht: Ich habe in meiner Anwendung eine Tabelle mit CREATE TABLE... erzeugt. Wenn ich den Emulator starte, sehe ich meine DB im File Explorer im Data Verzeichnis. Dann habe ich mir diese DB mit dem File Explorer auf meine Platte kopiert und dann mit dem SQLLite Administrator die Tabelle mit Inhalt gefüllt.
Danach habe ich die Tabelle wieder mit dem File Explorer zurück ins Data Verzeichnis kopiert.

Das CREATE TABLE Statement habe ich wieder entfernt, da die Tabelle ja schon existiert. Es sollen nur noch Felder mit DB Inhalten gefüllt werden.
In Eclipse über den Emulator läuft das auch alles top.

Wenn ich auf meinem Handy direkt debugge wie Tom299 vorgeschlagen hat, bekomme ich auf meinem Handy die Meldung, Die Anwendung wurde unerwartet beendet (genau dort wo die Liste mit den DB Einträgen erstellt werden soll), aber im Logcat stehen keine Meldungen drin??

Gruß

Spike
 
Noch ein Nachtrag: Nun bekomme ich Ausgaben im Logcat wenn ich auf meinem Handy debugge.

11-30 12:24:40.139: ERROR/AndroidRuntime(31051): Caused by: android.database.sqlite.SQLiteException: no such table: Tab1: , while compiling: SELECT _id, BESCHREIBUNG, BILDPFAD, ZUTATEN FROM Tab1 WHERE KATEGORIE_ID = 0

Fehler ist wohl das die DB nicht auf meinem Handy ist?
Wie bekomme ich dadrauf und wo muss die hin?

Danke und Gruß
Spike
 
wie man die DB kopiert hatte ich oben schon erwähnt bzw. den Link gepostet.

beim Pfad kannste dich hieran orientieren:
String DB_PATH = "/data/data/de.test/databases/";
String DB_NAME = "test.db";

also nach /data/data den packagenamen gefolgt von /databases. das kannst du aber auch in deinem EMU abschaue, die pfade sind ja gleich ;-)
 
Du hast dir die Datenbank also NUR auf dem Emulator eingerichtet... Dein Handy bekommt jetzt eine Anwendung, die versucht auf eine Datenbank zurückzugreifen, die nicht da ist ...

ergo entweder auf dem Handy per Root oder durch entsprechende Create Table etc. in der Anwendung die DB erzeugen lassen
 
So nun geht es endlich... DANKE an Euch!!!


Grüße

Spike
 

Ähnliche Themen

S
Antworten
8
Aufrufe
481
swa00
swa00
B
Antworten
4
Aufrufe
430
bb321
B
Zurück
Oben Unten