• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Cachebox & Android 2.1

marsipulami0815

Geocacher
Hallo,
habe mir die Quellen heute mal besorgt und soweit hat das auch alles funktioniert. Da ich das hier alles auf einem Linux System mache, hat mich erst mal nur das encoding wg. der Umlaute aufgehalten ...
Leider kann ich es i. M. nur im Emulator testen, da es Froyo für's Moto Defy noch nicht gibt :kopfwand: Ich hoffe, das kommt bald. Leider läßt sich DroidCachebox nicht für Android 2.1 übersetzen :cry: Gibt es einen speziellen Grund dafür, das Ihr mindestens 2.2 vorraussetzt?

Gruß,
Marcus
 

Ging-Buh

Geowizard
marsipulami0815 schrieb:
Hallo,
habe mir die Quellen heute mal besorgt und soweit hat das auch alles funktioniert. Da ich das hier alles auf einem Linux System mache, hat mich erst mal nur das encoding wg. der Umlaute aufgehalten ...
Leider kann ich es i. M. nur im Emulator testen, da es Froyo für's Moto Defy noch nicht gibt :kopfwand: Ich hoffe, das kommt bald. Leider läßt sich DroidCachebox nicht für Android 2.1 übersetzen :cry: Gibt es einen speziellen Grund dafür, das Ihr mindestens 2.2 vorraussetzt?

Gruß,
Marcus
Hallo Marcus,
der Grund, warum momentan 2.2 vorausgesetzt wird ist vermutlich einfach der, dass wir alle entsprechende Geräte (2.2 und 2.3.1) haben.
Von uns hat zwar keiner ein Android 2.1 Gerät, ich habe aber einfach mal einen Android 2.1 Emulator erstellt und in der AndroidManifest.xml die Sdk Version auf 7 (für 2.1) geändert.
Code:
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7"/>
Daraufhin ist CacheBox auch im Emulator mit Andorid 2.1 gelaufen. Versuchs einfach mal.
Mit geringeren Android Versionen (1.6) hat es im Emulator auf die Schnelle nicht geklappt.
 
OP
marsipulami0815

marsipulami0815

Geocacher
Ging-Buh schrieb:
Hallo Marcus,
der Grund, warum momentan 2.2 vorausgesetzt wird ist vermutlich einfach der, dass wir alle entsprechende Geräte (2.2 und 2.3.1) haben.
Von uns hat zwar keiner ein Android 2.1 Gerät, ich habe aber einfach mal einen Android 2.1 Emulator erstellt und in der AndroidManifest.xml die Sdk Version auf 7 (für 2.1) geändert.
Code:
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7"/>
Daraufhin ist CacheBox auch im Emulator mit Andorid 2.1 gelaufen. Versuchs einfach mal.
Mit geringeren Android Versionen (1.6) hat es im Emulator auf die Schnelle nicht geklappt.

Ok, auf die schnelle geht das so - DCB startet auf dem Smartphone, bleibt dann allerdings beim starten bei"Load caches" hängen. Auf der SD-Card ist das cachebox verzeichnis aber angelegt worden. Habe mal eine kleine DB im sqlite format erzeugt und dorthin kopiert, aber der Hnger ist immer noch da. Jetzt muss ich erst mal noch was tun. Schaue da heute Abend zu Hause noch mal nach ... DCB arbeitet nur auf SD-Speicher oder auch im Gerätespeicher?
 

Longri

Geoguru
Hallo marsipulami0815,

lösche einmal die Config. Es kann sein, das dort als default DB noch cachebox.sdf drin steht.
Es muss aber cachebox.db3 sein, wenn Du nur eine DB hast. Bei mehreren DB´s kommt ein Auswahl Dialog.

Gruß Longri
 
OP
marsipulami0815

marsipulami0815

Geocacher
Longri schrieb:
lösche einmal die Config. Es kann sein, das dort als default DB noch cachebox.sdf drin steht.
Es muss aber cachebox.db3 sein, wenn Du nur eine DB hast. Bei mehreren DB´s kommt ein Auswahl Dialog.

Hallo, habe Deinen Rat befolgt, aber leider ohne besseres Ergebnis ...
Habe auch noch mal komplett alles entfernt ...
logcat spuckt folgendes aus - was ich direkt Droidcachebox zuordnen kann:
Code:
06-06 22:56:16.210  1242  1362 D KeyguardViewMediator: setHidden false
06-06 22:56:16.210  1242  1265 I ActivityManager: Displayed activity de.droidcachebox/.splash: 7418 ms (total 7418 ms)
06-06 22:56:16.217  1242  1265 D KeyguardViewMediator: setHidden false
06-06 22:56:16.452  4402  4432 W System.err: java.io.FileNotFoundException: /sdcard/cachebox/debug.txt
06-06 22:56:16.499  4402  4432 W System.err:    at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:244)
06-06 22:56:16.499  4402  4432 W System.err:    at java.io.FileOutputStream.<init>(FileOutputStream.java:97)
06-06 22:56:16.507  4402  4432 W System.err:    at java.io.FileWriter.<init>(FileWriter.java:58)
06-06 22:56:16.514  4402  4432 W System.err:    at de.droidcachebox.Global.AddLog(Global.java:674)
06-06 22:56:16.514  4402  4432 W System.err:    at de.droidcachebox.splash.Initial(splash.java:130)
06-06 22:56:16.522  4402  4432 W System.err:    at de.droidcachebox.splash.access$0(splash.java:128)
06-06 22:56:16.530  4402  4432 W System.err:    at de.droidcachebox.splash$1.run(splash.java:103)
06-06 22:56:16.530  4402  4432 W System.err:    at java.util.Timer$TimerImpl.run(Timer.java:290)
06-06 22:56:16.538  1242  1265 D KeyguardViewMediator: setHidden false
06-06 22:56:17.319   914   919 D skia    : >>>>>>>: CacheBuilder::BuildFrame(()
06-06 22:56:17.327   914   919 D skia    : >>>>>>> WebViewCore::updateFrameCache()--2--cachedFocusNode=0; (nodePointer=0x0); m_frameCacheKit=0x390eb8; m_updatedFrameCache=1
06-06 22:56:19.210   914   919 D skia    : >>>>>>>: CacheBuilder::BuildFrame(()
06-06 22:56:19.217   914   919 D skia    : >>>>>>> WebViewCore::updateFrameCache()--2--cachedFocusNode=0; (nodePointer=0x0); m_frameCacheKit=0x4f61c0; m_updatedFrameCache=1
06-06 22:56:23.350  4402  4432 W System.err: java.io.FileNotFoundException: /sdcard/cachebox/cachebox.config
06-06 22:56:23.358  4402  4432 W System.err:    at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:244)
06-06 22:56:23.358  4402  4432 W System.err:    at java.io.FileInputStream.<init>(FileInputStream.java:77)
06-06 22:56:23.358  4402  4432 W System.err:    at java.io.FileInputStream.<init>(FileInputStream.java:130)
06-06 22:56:23.358  4402  4432 W System.err:    at java.io.FileReader.<init>(FileReader.java:66)
06-06 22:56:23.366  4402  4432 W System.err:    at de.droidcachebox.Config.checkInitialization(Config.java:145)
06-06 22:56:23.366  4402  4432 W System.err:    at de.droidcachebox.Config.readConfigFile(Config.java:112)
06-06 22:56:23.366  4402  4432 W System.err:    at de.droidcachebox.splash.Initial(splash.java:140)
06-06 22:56:23.366  4402  4432 W System.err:    at de.droidcachebox.splash.access$0(splash.java:128)
06-06 22:56:23.374  4402  4432 W System.err:    at de.droidcachebox.splash$1.run(splash.java:103)
06-06 22:56:23.374  4402  4432 W System.err:    at java.util.Timer$TimerImpl.run(Timer.java:290)
06-06 22:56:23.436  4402  4432 I global  : Default buffer size used in BufferedWriter constructor. It would be better to be explicit if an 8k-char buffer is required.
06-06 22:56:23.499  4402  4432 I global  : Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.

Habe eine frische Installation ohne DB gestartet - Karten habe ich ebenfalls noch keine installiert. Vielleicht sagt euch das ja etwas.

BTW, soll diese Art von Diskussion hier weitergeführt werden oder sollte man nicht besser einen neuen Thread dafür öffnen? Ist inzwischen immerhin völlig OT zum ursprünglichen Thread-Titel
Gruß,
Marcus
 

Ging-Buh

Geowizard
marsipulami0815 schrieb:
Habe eine frische Installation ohne DB gestartet - Karten habe ich ebenfalls noch keine installiert. Vielleicht sagt euch das ja etwas.
Hallo, ohne DB (von WinCachebox erstellt, SQLite Format *.DB3 im Ordner /sdcard/cachebox) geht momentan gar nichts.
Kannst du nicht mal mit dem Debugger Schritt für Schritt durchgehen, wo der Absturz passiert (ich würde in der Splash.java beginnen)?
 
OP
marsipulami0815

marsipulami0815

Geocacher
cachebox.db3 ist in /sdcard/cachebox vorhanden. Darin sind 58 caches. Kann die DB mit dem SQlite Manager Plugin vom Firefox auch öffnen und ein check sagt, die DB ist i.O.

Wenn ich schrittweise durchs Programm gehe, sieht soweit alles normal aus (subjektiv). Ich kann keine Stelle erkennen, wo das Programm wirklich abbricht, allerdings sehe ich im "Variables" Fenster von Eclipse gelegnetlich folgenden String:
"/sdcard/cachebox/cachebox.db3 SQLiteDatabase created and never closed"
und in der logcat Ausgabe:
"06-07 14:29:19.319: ERROR/Database(8111): sqlite3_open_v2("/sdcard/cachebox/User/FieldNotes.db3", &handle, 2, NULL) failed"

Ich vermute mal: die Fieldnotes DB fehlt auch noch bzw. kann noch nicht erstellt werden, wenn sie fehlt ...?
Gruß,
Marcus
 

Ging-Buh

Geowizard
marsipulami0815 schrieb:
Ich vermute mal: die Fieldnotes DB fehlt auch noch bzw. kann noch nicht erstellt werden, wenn sie fehlt ...?
Hallo Marcus,
die FieldNotes.db3 sollte eigentlich automatisch erzeugt werden. Ich habs gerade getestet, bei mir funktioniert es. Existiert bei dir der Ordner cachebox/user und die FieldNotes.db3?

Könntest du mit dem Debugger in der database.java in der Zeile 66 testen? Hier müsste die FieldNotes.db3 erzeugt werden. Falls hier ein Fehler auftritt wäre die Fehlermeldung der Exception interessant.
 
OP
marsipulami0815

marsipulami0815

Geocacher
Ging-Buh schrieb:
die FieldNotes.db3 sollte eigentlich automatisch erzeugt werden. Ich habs gerade getestet, bei mir funktioniert es. Existiert bei dir der Ordner cachebox/user und die FieldNotes.db3?
Hallo Hubert, es existiert der Pfad "/sdcard/cachebox/User" und der wurde automatisch angelegt, aber der ist leer ...
Ging-Buh schrieb:
Könntest du mit dem Debugger in der database.java in der Zeile 66 testen? Hier müsste die FieldNotes.db3 erzeugt werden. Falls hier ein Fehler auftritt wäre die Fehlermeldung der Exception interessant.
... ich vermute mal, die Exception, die Du suchst, ist folgende:
"java.lang.IllegalArgumentException: File /sdcard/cachebox/User/FieldNotes.db3 contains a path separator". Es gibt aber (nach beenden von cachebox) keine FieldNotes.db3 in diesem Verzeichnis.
Gruß,
Marcus
 

Ging-Buh

Geowizard
marsipulami0815 schrieb:
... ich vermute mal, die Exception, die Du suchst, ist folgende:
"java.lang.IllegalArgumentException: File /sdcard/cachebox/User/FieldNotes.db3 contains a path separator". Es gibt aber (nach beenden von cachebox) keine FieldNotes.db3 in diesem Verzeichnis.
Hallo Marcus,
versuch mal im Ordner user eine leere Datei mit dem Namen "FieldNotes.db3" zu erstellen und dann CacheBox nochmal zu starten.
 

Longri

Geoguru
Ich habe das Thema, jetzt doch, abgetrennt!

Wenn euch der Titel nicht gefällt, sagt bescheid!
 
OP
marsipulami0815

marsipulami0815

Geocacher
Ging-Buh schrieb:
versuch mal im Ordner user eine leere Datei mit dem Namen "FieldNotes.db3" zu erstellen und dann CacheBox nochmal zu starten.
Damit startet CacheBox durch ...
Sieht bis ja schon wirklich gut aus! Ein erster Test der Funktionen hat soweit funktioniert, nur beim umschalten auf "Nachtmodus" schmiert Cachebox reproduzierbar ab. Da ich diese Tests heute am Flughafen gemacht beim warten gemacht habe, hatte ich natürlich kein debugging an ... wird noch nachgeholt.
Aufgefallen ist mir, dass solange GPS keinen Fix hat, steht auf der Übersichtsseite (Einstellung: deutsch) "nicht Aktive" und der Kompass - bei Einstellung "benutze HTC Kompass" ist auch nicht aktiv. Der magnetische Kompass sollte ja eigentlich auch ohne GPS funktionieren.
Das Grad-Zeichen wird nicht dargestellt, stattdessen wird ein ? in einer Raute gezeigt. Vermute, dies ist ein Problem mit der GUI wenn auf Windows in Eclipes entwickelt wird und dann auf Linux mit UTF-8 kompiliert wird.

Soll ich die Dinge, die ich finde, weiter hier posten oder in den Tracker einstellen?
Gruß,
Marcus
 

Longri

Geoguru
Hallo Marcus,

das Problem mit dem "Nachtmodus" habe ich gerade behoben. Es lag daran, dass wir auf der suche nach mehr Speicherplatz CB komplett geschlossen haben, wenn die main Activity geschlossen wird.
Bei einem Theme wechsel muss aber die Activity neu gestartet werden.

Das mit der GPS Meldung, kannst Du ruhig im Tracker eintragen, wir haben noch ein paar Probleme den GPS Status und den NMEA datensatz richtig auszulesen. Mein HD2 zb. liefert keine genauen Angaben zur Höhe und dem Korrekturfaktor, weil es garkein NMEA-Datensatz liefert. Bei Ging-Buh funktioniert es mit dem internen aber nicht mit einem Bluetooth GPS. (oder umgekehrt).
Die entsprechende Hardware Anpassung an unterschiedliche Geräte scheint hier etwas komplizierter.

Das hat sich auch bei deinem Problem mit der Fieldnotes.db3 gezeigt. Anscheinet kann 2.1 keine Datei auf der SD anlegen. Wenn sie aber erst einmal da ist scheint es ja zu gehen.

Grüße Andre
 
OP
marsipulami0815

marsipulami0815

Geocacher
Longri schrieb:
Das hat sich auch bei deinem Problem mit der Fieldnotes.db3 gezeigt. Anscheinet kann 2.1 keine Datei auf der SD anlegen. Wenn sie aber erst einmal da ist scheint es ja zu gehen.
Hallo Andre,
die Verzeichnisstruktur wird von CB angelegt, auch die cachebox.config und debug.txt werden automatisch angelegt ... Möglicherweise ein Rechteproblem, aber die Rechte auf das Verzeichnis "cachebox" sehen genauso aus, wie die von anderen Applikationen, die ebenfalls auf SD-Card schreiben (---rwxr-x / 075).

Wenn ich weitere, allgemein Bugs find, fülle ich den Tracker damit. Wenn sich dies dann als besonderheit mit Android 2.1 herausstellt, kann man es ja hier auch kurz erwähnen.
Gruß, marcus
 
OP
marsipulami0815

marsipulami0815

Geocacher
hmmm ...
jetzt habe ich Froyo auf dem Defi und Cachebox geht gar nicht mehr ...
Schmiert ab bei "lade caches", kein debgulog Eintrag und im Debug Interface in Eclipse konnte ich auch noch nichts sehen/finden. Mag aber daran liegen, dass ich eigentlich auch gar nicht weiß, wo oder wonach ich suchen muss :/
Werde das mal weiter untersuchen ...
Gruß,
Marcus
 
OP
marsipulami0815

marsipulami0815

Geocacher
Longri schrieb:
Ein Crash an dieser Stelle ist ein Anzeichen dafür, das die DB nicht gefunden wurde.
Hast Du deine DB in den Ordner cachebox auf der SD gepackt?
Bin noch mal 'nen ganzen Schritt zurück und habe mit der version 113 probiert (hier am Rechner im Büro). Dort hatte ich am Anfang win WinCB Version 123 eine DB im sqlite Format erstellt, die nicht ging. Ich hatte dann später nochmal mit WinCB 129 eine neue DB erstellt, dia alte aber nich gelöscht und diesedann vorhin zum testen auf das Defy kopiert :kopfwand:
Also: Defy mit Froyo (Android 2.2.2), Cachebox alpha 113 und einer kleinen DB läuft. Das hatte ich schon mal.
Die weiteren Probleme, die ich hier und da schon mal haben, liegen dann wohl eher daran, das ich im Büro 'ne windows Maschine habe und zu Hause eine Linux Rechner mit Eclipse. Ein Problem auf der Linux Maschine ist der, dass, wenn ich in Eclipse eine Version neu anlege, erst im Editor das Encoding von UTF-8 auf das in Windows benutzte umstellen muss (geht leider nicht automatisch), sonst bleiben die Sonderzeichen, wie z. B. das "ä" in dem Klasssen- oder Variablennamen nicht darstellbar. Auch das Grad-Zeichen in den Koordinaten wird auf dem Phone nicht richtig angezeigt, wenn ich aufdem Linux Rechner kompiliert habe. Wobei das eher sekundär ist - wenns offiziell über den Market verteilt wird, sollte es ja aus einer definierten Quelle kommen.

Mal was anderes: welche Kartenformate plant Ihr denn noch zu unterstützen? Kennst Du "osmand+"? Das benutzt die OSM Vektor Daten von z.B. der Geofabrik und rendert die Tiles "on the fly". Man braucht für ganz Deutschland so nur ca 1,1GB Platz auf der Speicherkarte. Interessant für die Leute mit begrenztem Datenvolumen. Hatte ich nicht auch irgendwo schon mal was gelesen, dass Ihr Vektorformate unterstützen wollt?

Gruß,
Marcus
 

Longri

Geoguru
Die OSM Karten hat Ging-Buh hervoragend eingebaut. Ich benutze keine andere mehr.
Du musst dir nur die entsprechende Map hier laden und in den Map Ordner kopieren.
Dann kannst Du in der MapView das Layer auf die gewünschte Map einstellen. Das Rendern geht schnell und verbraucht kein Traffic!

Zitat Ging-Buh:
Karten für Deutschland oder die einzelnen Bundesländer kannst du hier laden:
ftp://ftp.mapsforge.org/
Einfach die *.map Datei in den Map Ordner kopieren.

Wenn ich das richtig sehe, werden diese Karten täglich aktualisiert...

Du solltest dann in der Layer Liste für jede OSM Karte, die du reinkopierst einen Eintrag bekommen...
 

GeoSilverio

Geowizard
Kurzer Status von mir:
Ich habe am langen Wochenende
- Erstens cachebox mit Eclipse und Android-SDK so hinbekommen, dass ich es kompilieren konnte und
- Zweitens mein HD2 von WinMob 6.5 auf Android 2.3.4 geflashed (NAND).

Nachdem ich cachebox installiert hatte und dann mit WinCB einen Export meiner Datenbank ins SqLite-Format und kopieren der Db und Bilder und PACKs auf die sdcard, startete cachebox.
GPS-Empfang war anfangs etwas sehr langsam und schwerfällig, was aber eher an dem GPS-Treiber der Androidumsetzung fürs HD2 liegt.
Nachdem ich ein Bluetooth2GPS-Programm gefunden habe und meine externe Bluetooth-GPSmaus zum laufen brachte, ging aus das wunderbar in cachebox.

Abstürze gabs eigentlich keine, die cachebox-Funktionen sind an ein paar Stellen entweder noch nicht umgesetzt oder eben jetzt an anderer Stelle, so muss ich mich erst mal dran gewöhnen, dass ich Menüs teilweise (wie bisher) durch lang drücken des Programmbuttons bekomme, manchmal aber auch über die Menütaste am Smartphone. Vielleicht sollte das vereinheitlicht werden?

Ansonsten schon mal SEHR gut!
Ich werde in den nächsten Tagen auch mal eine Liste machen mit Dingen, die noch komisch/unrund sind oder fehlen.

Aber schon mal: Hut ab vor den Programmierern, wie weit das schon ist... :gott: :gott: :gott:

PS: Cachebox darf und soll natürlich trotzdem für WinMob weiter entwickelt werden, aber wird es ja sowieso. Von einer Version 1.0 kann man ja unter Android sicher noch längere Zeit nicht reden. Dennoch: Je mehr testen, desto schneller kommt man mal den Fehlern auf die Spur.
 
Oben