"Fehler beim Anhängen an den remote-VM" anschließen jdb-der android-emulator für Windows
Ich versucht habe zu verbinden, jdb-der android-emulator für eine kleine Weile, und erfüllt immer wieder mit:
jdb -sourcepath ./src -befestigen localhost:8700 java.io.IOException: shmemBase_attach fehlgeschlagen: Das system kann nicht die angegebene Datei gefunden bei com.Sonne.tools.jdi.SharedMemoryTransportService.attach0(Native-Methode) bei com.Sonne.tools.jdi.SharedMemoryTransportService.attach(SharedMemoryTransportService.java:90) bei com.Sonne.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:98) bei com.Sonne.tools.jdi.SharedMemoryAttachingConnector.attach(SharedMemoryAttachingConnector.java:45) bei com.Sonne.tools.Beispiel.debug.tty.VMConnection.attachTarget(VMConnection.java:358) bei com.Sonne.tools.Beispiel.debug.tty.VMConnection.open(VMConnection.java:168) bei com.Sonne.tools.Beispiel.debug.tty.Env.init(Env.java:64) bei com.Sonne.tools.Beispiel.debug.tty.TTY.main(TTY.java:1010) Fatal error: Nicht in der Lage zu befestigen, um Ziel-VM.
Nicht so toll. Was ist der beste Weg, um diese? Ich bin auf Windows 7 64bit.
Können Sie die Verbindung über den debugger überhaupt? Check meine Antwort hier
Hm, sieht aus wie die Einträge in meiner hosts-Datei sind alle auskommentiert, nämlich: # localhost name resolution is handled innerhalb der DNS selbst. # 127.0.0.1 localhost # ::1 localhost
Gefunden ein Antwort. Von etwas Googlen scheint es, dass jdb auf die Windows-Standardeinstellungen, um eine shared memory-Verbindung mit einem remote-VM (herongyang.com/jtool/jdb_3.html). Stellt sich heraus, wir können geben Sie einen anderen Verbindungstyp: > jdb -connect com.Sonne.jdi.SocketAttach:hostname=localhost,port=8700 Set nicht abgefangene java.lang.Throwable Gesetzt latente nicht abgefangene java.lang.Throwable Initializing jdb ... > Das erscheint zu verbinden, mindestens.
Ich noch empfehlen, mit dem Ziel Ihre localhost auf 127.0.0.1. DNS sollte nicht haben, es zu berühren... und dein DNS nur zurückgeben könnte eine IPv6 statt IPv4-Adresse. Sie haben keine Kontrolle über diese. Sie können Steuern, Ihre "Gastgeber".
Hm, sieht aus wie die Einträge in meiner hosts-Datei sind alle auskommentiert, nämlich: # localhost name resolution is handled innerhalb der DNS selbst. # 127.0.0.1 localhost # ::1 localhost
Gefunden ein Antwort. Von etwas Googlen scheint es, dass jdb auf die Windows-Standardeinstellungen, um eine shared memory-Verbindung mit einem remote-VM (herongyang.com/jtool/jdb_3.html). Stellt sich heraus, wir können geben Sie einen anderen Verbindungstyp: > jdb -connect com.Sonne.jdi.SocketAttach:hostname=localhost,port=8700 Set nicht abgefangene java.lang.Throwable Gesetzt latente nicht abgefangene java.lang.Throwable Initializing jdb ... > Das erscheint zu verbinden, mindestens.
Ich noch empfehlen, mit dem Ziel Ihre localhost auf 127.0.0.1. DNS sollte nicht haben, es zu berühren... und dein DNS nur zurückgeben könnte eine IPv6 statt IPv4-Adresse. Sie haben keine Kontrolle über diese. Sie können Steuern, Ihre "Gastgeber".
InformationsquelleAutor Tim Barrass | 2010-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Derzeit ist dies für mich arbeiten -- Herstellung einer socket-eher als eine shared memory-Verbindung.
>jdb –sourcepath .\src -connect com.Sonne.jdi.SocketAttach:hostname=localhost,port=8700
Vorher müssen Sie einige setup-zum Beispiel, sehen Sie, dieser Satz von nützliche Informationen zur Einrichtung einer non-eclipse-debugger. Es enthält einen guten Tipp für die Einstellung der ersten breakpoint -- erstellen oder Bearbeiten von jdb.ini-Datei in Ihrem home-Verzeichnis, mit Inhalten wie:
und Sie werden geladen und verschoben, bis sich die Verbindung.
edit: habe vergessen zu Referenz Herong Yang-Seite.
Eine Erklärung für den downvote?
InformationsquelleAutor Tim Barrass
Versuchen, beenden von Android Studio.
Ich hatte ein ähnliches problem auf dem Mac durch den ADB-daemon bereits läuft. Sobald Sie beenden Sie alle Laufenden daemons, sollten Sie sehen eine Ausgabe ähnlich der folgenden:
Sehen meine andere Antwort zu einer ähnlichen Frage für weitere details und wie Sie starten/stoppen des daemon.
InformationsquelleAutor Zack Morris
Antwort #1: Anzeigen localhost in der hosts-Datei, da ich bereits verlinkt. Nur um sicher zu sein.
Antwort #2: Wenn Sie mit shared memory, bit-Größe, könnte leicht zu einem Problem werden. Machen sicher bist du mit dem gleichen Wort Breite überall.
InformationsquelleAutor Mark Storer
Um debug-Anwendung führen Sie diese Schritte aus:
Öffnen Sie die Anwendung auf dem Gerät.
Suchen Sie die PID mit jdwp (stellen Sie sicher, dass "android:debugfähiger' ist auf true gesetzt, die im manifest):
Starten der JVM mit den folgenden Parametern:
Erwartete Ausgabe für diesen Befehl:
Verwenden jdb zum befestigen der Anwendung:
Wenn jdb erfolgreich angefügt werden wir sehen, die jdb-cli.
Beispiel:
InformationsquelleAutor ic205