2012-06-01 16 views
9

Ich versuche, eine einfache Android-Anwendung auf dem emultor oder einem Gerät zu debuggen, und ich kann den Debugger nicht auf alle Breakpoints stoppen, die ich gesetzt habe. Ich habe die anderen Beiträge hier und im ganzen Web kombiniert und alle Vorschläge ausprobiert (debuggable: "true" zum Manifest hinzufügen, adb anhalten und starten, Alles bereinigen, sicherstellen, dass ich die Debug-Schaltfläche, nicht die run-Schaltfläche usw. benutze) . In der Debug-Perspektive kann ich die Threads sehen und in DDMS zeigt es das Debug-Icon neben dem Gerät an, auf dem ich debugge. Ich sehe die blauen Punkte, wo ich den Haltepunkt gesetzt habe und die Debug-Perspektive listet sie auf und sagt, dass sie aktiv sind.Android-Debugging mit Eclipse - Keine Breakpoints

Ich habe Warnungen vor den Haltepunkten eingefügt, um zu überprüfen, ob der Code ausgeführt wird.

Beginnend hier verrückt zu werden. Irgendwelche anderen Vorschläge? Ich muss etwas Einfaches, aber nicht Offensichtliches vermissen.

UPDATE: Ich schätze die Antworten bisher. Leider haben sie mein Problem nicht gelöst. Ich habe die Anweisungen zum Debuggen befolgt und Debugging im Telefon aktiviert. Außerdem sehe ich beim Start die Warnung "Warten auf Debugger" auf dem Telefon. Im Allgemeinen sagt alles, dass ich debugge (einschließlich logcat Ausgabe, die ich hinzugefügt habe). Es stoppt nur nicht an den Haltepunkten, die ich hinzugefügt habe, und sind auf der Registerkarte Haltepunkte in der Debug-Perspektive aufgelistet. Auch nur zu wiederholen - das passiert beim Debuggen sowohl auf dem Gerät als auch auf dem Emulator. Eine Sache, die ich bemerke ist, dass wenn ich den Debugger starte ich habe es eingestellt, um die Android Device Chooser zu öffnen. Dort ist die "Debug" -Spalte für mein Gerät leer - aber wenn der Emulator läuft, sagt die Debug-Spalte "Ja". Auch die Konsole gibt an, dass versucht wird, eine Verbindung zum Debugger herzustellen. Sollte es ein Konsolenprotokoll geben, das besagt, dass der Debugger erfolgreich verbunden ist? Ich sehe das nicht.

UPDATE 20120914: Ich war schon seit einiger Zeit weg und hatte vorher aufgegeben. Zurück zu versuchen und anzugehen. Es ist immer noch nicht gelöst. Alles oben ist immer noch aktuell - aber eine andere Sache, die ich bemerkt habe. Ich habe einen Class Load Breakpoint auf die Hauptaktivität gesetzt und es hört dort auf. Es hört einfach nicht bei irgendwelchen Zeilenumbrüchen auf. Ich habe gerade auf das neueste JDK 1.7.0_07, Android SDK 20, ADT Plugin 20.0.3 aktualisiert. Ich habe das Logcat verwendet, um eine Nachricht auszugeben und einen Haltepunkt in dieser Zeile zu setzen. Ich sehe die Nachricht in logcat, damit ich weiß, dass der Code ausgeführt wird. Das Debug-Fenster in der debig-Perspektive zeigt auch die Android-Anwendung mit einer Anzahl von Threads darunter und das Devices-Fenster in der DDMS-Perspektive zeigt die Anwendung mit dem grünen Bug-Icon daneben.

Eine weitere Sache - wenn der Debugger ausgeführt wird die Zeile Haltepunkte Kugeln erhalten kein Häkchen überlagert sie (die Klasse laden Haltepunkt tut!). Ich vermute, das ist die Ursache - aber ich weiß nicht, warum sie das nicht bekommen. (Übrigens sind Skip Breakoints auch nicht gesetzt - Breakpoints haben keine Linien durch sie).

Alle neuen Vorschläge würden geschätzt. Ich habe viel Zeit damit verbracht. Es muss etwas Offensichtliches sein, das ich nicht sehe.

Antwort

3

Android SDK bietet die meisten Tools, die Sie zum Debuggen Ihrer Anwendungen benötigen. Dieser Link führt Sie zu Android debugging environment and the debugging tools verwendet.

Hier ist auch eine praktische Anleitung auf debugging an android application.

Wenn Sie debuggen tatsächlichen Android-Handy mit, schalten Sie "USB-Debugging" in Ihrem Gerät:

Einstellungen> Anwendungen> Entwicklung und Aktivierung USB-Debugging

Und roid 4.0:

Einstellungen> Entwickleroptionen

und die Verwendung von Log.d und Ihre Logcat machen.

1

Eclipse hat eine Debuglaufkonfiguration. Nur wenn Sie die Debug-Run-Konfiguration verwenden, wird während des Starts ein Debugger an die Anwendung angehängt.

Startet die Anwendung (auf dem Gerät/Emulator) eine Weile "Waiting for Debugger"? Wenn nicht, dann starten Sie die Anwendung nicht mit der "Debug-Konfiguration". Es ist der Button links neben der Run (Drop-Down) Konfiguration.

5

Jetzt fühle ich mich ein bisschen dumm diesen Beitrag zu schreiben. Aber ich habe mein Problem endlich gelöst. Das Problem ist, dass Sie im JavaScript-Code keine Haltepunkte setzen können. Der Teil, den ich unabsichtlich weggelassen habe, ist, dass ich eine App für Android mit PhoneGap schreibe. Fast der gesamte Code ist Javascript. Ich bin es gewohnt, .NET-Web-Anwendungen in Visual Studio zu entwickeln. Ich nahm an, dass Sie im JavaScript-Code Haltepunkte setzen konnten. Breakpoints im Java-Code funktionieren problemlos. Wie auch immer, Danke für Anregungen. Ich weiß nicht, ob es andere .NET-Entwickler gibt, die die Entwicklung von PhoneGap versuchen - aber vielleicht hilft ihnen dieser Beitrag.

1

Versuchen Sie jsHybugger: http://www.jshybugger.org/ für das Setzen von Javascript Breakpoints in Eclipse für Remote (mobile) Geräte.

Sie können Breakpoints, Singlestep, Ausnahmen abfangen und mit der JS/DOM-Umgebung interagieren. Sie können es aus Eclipse oder einem Chrome- oder Chrome-kompatiblen Debugger auf dem Remote-Desktop verwenden. Es kann mit Apps verwendet werden, die ihr eigenes WebView erstellen.

Allerdings müssen Sie ein paar Dateien installieren - aber wahrscheinlich nicht komplizierter zu benutzen als weinre. es ändert die JS-Dateien (on-the-fly, transparent für den Benutzer) umfassend, um all dieses Debuggen zu ermöglichen - webKit sollte das Debuggen von Javascript nativ unterstützen.

+0

Dies ist keine relevante Antwort auf die Frage. Zumindest kann ich webview/phonegap/javascript nirgendwo anders als in einer anderen Antwort erwähnt. – laalto

+2

Ich denke, es ist wichtig, dass er letztlich gefragt hat, wie man Javascript in einer App (nicht Java in einer App, wie die ursprüngliche Frage impliziert haben könnte) debuggen. Dies ist die einzige Möglichkeit, die ich festgestellt habe, in der Lage sein zu debuggen (breakpoint/Singlestep) Javascript (in Eclipse). – Ribo

0

Stellen Sie sicher, dass Sie nicht alle Haltepunkte überspringen (Ausführen -> Alle Haltepunkte überspringen).

0

Ribo erwähnt es bereits in seiner Antwort, aber da diese Frage und Antworten über das Debuggen von Phonegap-Anwendungen sind. Sie müssen sicherlich auf weinre schauen (WEb INspector REmote). http://people.apache.org/~pmuellr/weinre/docs/latest/

Heute PhoneGap selbst hat seine eigene weinre ist in phonegap build umarmte ... http://debug.phonegap.com/

Ich bin ein großer Fan von dieser ... (beachten Sie, wenn Sie weinre auf dem lokalen Computer verwenden und versuchen, debug eine phonegap app über wifi ... stellen sie sicher, dass ihr lokales gerät im gleichen wifi-netzwerk ist!)

Verwandte Themen