[Monkey] Fehler auf Android debuggen?
Übersicht

PhillipKBetreff: Fehler auf Android debuggen? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Huhu!
Ich teste grade meine Inputsache (in nem anderen thread) auf dem Handy. Dh ich versuche es zumindest. Problem ist, das ich einfach keinerlei informationen, ausser einem error kriege. Nirgends finde ich hinweise, warum des denn schiefläuft ![]() Hier mal ein bild des fehlers: ![]() Ist nicht grade aussage kräftig. Wenn ich für andere targets (html5 oder glfw) builde, funzt alles wie gewünscht. Nur aufm handy, dort wo einfach mal keine information durchsickert, kackts direkt ab ![]() Irgendwelche vorschläge, wie man android apps debuggt? Print etc wäre ja irgendwie komisch :O (wobei ich das besser mal direkt probiere!) Edit: Print hat nicht geholfen. Aber den fehler hab ich dennoch behoben (und ich sag nur: wtf...) Problem war, das ich eine Datei "Input.monkey" hatte. Hab die einfach mal brav in "TouchInputFile" umbekannt und sieh da? Es funktioniert -.- Egal, das problem besteht weiterhin: Ich konnte ums verrecken noch keinerlei information entlocken, als der fehler auftrat. Dh wenn alles läuft, kann ich fehler noch grafisch ausgeben. Schmierts direkt ab, bin ich auf die -nennen wir sie mal dürftige- fehlermeldung angewiesen. Jemand eine idee? :3 |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
(Wieder nix Monkey-spezifisches sondern generelles Android-Zeug)
Wenn du "adb logcat" mit eingestecktem Handy in ein Kommandozeilenfenster eingibst (oder "adb shell" gefolgt von "logcat"), dann kannst du alles auslesen, was dein Programm über den StandardIO (nehme an, unter Monkey ist der per Print zu erreichen) schreibt. Vielleicht hilft das. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay?
Dh ich könnte mir den ganzen krams schön brav in eine datei schreiben lassen? Klingt gut. Allerdings: Wann muss ich das anwenden? Direkt beim builden // starten aufm droid ? Oder einfach "einmalig" beim loslegen am tag und dancah immer nur die datei checken? *mal test* |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das kannst du anwenden wann du willst. ![]() Eigentlich wird mit adb logcat alles ausgegeben was im Log drinsteht, seitdem du ihn das letzte mal geleert hast. Leeren kannst du den Log mit "adb logcat -c". Wenn du den Log in eine Datei schreiben willst statt der Kommandozeile schreibst du "adb logcat > [Dateiname]". Wenn du nur die Ausgaben deiner App haben willst und nicht alles, kannst du noch mit "-s [Tag]" den Log filtern. Ich weiß allerdings nicht, wie man bei Monkey einen Tag festlegt bzw. wenn es da einen festgelegten gibt, wie der heißt. Gruß, Tennisball |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie das funktioniert:
Alles was deine App in den Output-Stream und den Error-Stream schreibt (in Java per System.out.println("text"); bzw. System.err.println("text"); ) wird wo abgespeichert. Mit Logcat lässt sich diese Datei auslesen. Dabei kriegst du zuerst alles was passiert ist, seit dem du das letzte Mal Logcat verwendet hast, und dann tickt alles Neue live durch. Da kannst du direkt am Schirm sehen, was sich am Handy tut. Möchtest du stattdessen lieber alles für die spätere Analyse aufheben, verwende "adb logcat > dateiname.txt". Mit diesem Befehl speichert er dir den Inhalt der Logcat in die von dir angegebene Datei, allerdings nicht nur, was bis dahin passiert ist, sondern auch das, was noch passiert. Wenn du alles aufgenommen hast, was du brauchst, einfach das Handy kurz abstecken. Edit: Sorry, Tennisball, bin während dem Tippen angerufen worden und hab nicht mitgekriegt, dass du schon was gepostet gehabt hast. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh okay ![]() Leider bin ich grade mal wieder.. low-on-time >.< Es gibt soviele dinge die ich gerne machen möchte, testen möchte und überhaupt - aber irgendwie muss man immer, wenns spannend wird, sich fertig machen und "die welt dadraussen" bestreiten ![]() Meine frage bezog sich auf die arbeitsweise von logcat. Ich hatte erst angenommen, man "aktiviert" eine art echtzeit-logger, welcher dann mit Monkey IDE // JungleIDE oder sonstwem "mitläuft" und mir die ausgabge gibt. Das es aktiv ein log aufm handy gibt, wusste ich nicht ![]() Nun dann werd ich mich wohl mal dranmachen, mir das was brauchbares zu basteln - vielleicht findet sich ja was brauchbares, um JungleIDE aktiv die logdatei in gewissen intervallen auslesen zu lassen (pseudo echtzeit ausgabe direkt in der konsole^^) Zum tag: Ich nehme an, das die logdatei keinem speziellen aufbau folgt. Dh es ist eine einfache datei mit zeilenweisem text - eben wie eine konsole. der TAG ist dann einfach nur ein suchwort, was ich theoretisch durch überladen der Print funktion anfügen kann: BlitzMax: [AUSKLAPPEN]
Die ausgabe: Code: [AUSKLAPPEN] [APPNAME] Ich bin in OnCreate() (achja, die peinlichen newbie prints ![]() Wäre btw ne ganz nette einrichtung wenn ich mir das angewöhne. Da ich typsicherweise meine Klassen in eigene dateien auslagere, könnte jede für sich Print überladen und als präfix sowas wie: [MeinKrassesGame -> MeineKrasseKlasse] + string nutzen. Mh ![]() Mal was anderes: Da es auch TCP / UDP streams gibt - Könnte man sich nicht ein auslese programm basteln, welches streams empfängt und ausgibt? Dh Print wird für gewisse targets, wie Android, so überladen, das es einen UDP stream nutzt und die daten dahin schickt, simple zeilen. sollte das failen, gibts den normalen print, welcher mit logcat ausgelesen werden könnte... Das gegenstück, den empfänger, kann ich ja noch selber schreiben. Nur bei monkey haperts XD Aber: Theoretisch wäre das machbar, oder? (Heutzutage hat ja eh jeder 2te Haushalt einen WLAN router und jeder, der für ein mobiles device programmiert, hat dieses, wenn vorhanden, im wlan sitzen...) EDIT: Narf. Genau. Liveupdates. Das wollte ich xD Also hat sich die tCP / UDP frage erübrigt. Ich war ebenfalls lange mit tippern hier beschäftigt, DAK, deine nachricht kam grade erst bei mir an^^ |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, entweder verwend logcat direkt oder mach dir ein einfaches Programm, was den Logcat-Output als InputStream nimmt und interpretiert wie du es willst. Geht zumindest in Java extrem einfach. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seltsam... mit welcher Monkey Version arbeitest du?
Seit V67, oder so..., werden die Log-Live-Ausgaben direkt in der Monkey-Console angezeigt, nachdem man eine App in Monkey gebuildet hat und Monkey sie auch noch automatisch auf dem Handy starten konnte. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh?
Nun dann muss ich updaten. ich glaube, ich laufe grade auf V66. Hab des ganze schon ein paar tage rumfliegen, aber nicht viel elan gehabt. Erst seit ich mein smartphone (diesmal KEIN iphone *erleichtert*) habe, packt es mich tierisch. (Meine ziele: Kongregate und private apps fürs phone ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group