Как отлаживать Android APK на эмуляторе Genymotion из командной строки Linux? - PullRequest
0 голосов
/ 28 мая 2020

Я использую эмулятор Genymotion (VirtualBox) Android. Когда я пытаюсь подключить JDB к работающему приложению Android из командной строки, я получаю java.io.IOException: handshake failed - connection prematurally closed восторг, а именно:

$ adb jdwp
...
1720
1744
^C
$ adb forward tcp:1234 jdwp:1744
$ adb forward --list
192.168.56.105:5555 tcp:1234 jdwp:1744

$ ss -t -a | grep 1234
LISTEN 0      128        127.0.0.1:1234           0.0.0.0:*           

$ ifconfig
...
vboxnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.1  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::800:27ff:fe00:0  prefixlen 64  scopeid 0x20<link>
        ether 0a:00:27:00:00:00  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 243  bytes 48382 (47.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ jdb -attach localhost:1234
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
java.io.IOException: handshake failed - connection prematurally closed
        at jdk.jdi/com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:142)
        at jdk.jdi/com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:255)
        at jdk.jdi/com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:119)
        at jdk.jdi/com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:83)
        at jdk.jdi/com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)
        at jdk.jdi/com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)
        at jdk.jdi/com.sun.tools.example.debug.tty.Env.init(Env.java:63)
        at jdk.jdi/com.sun.tools.example.debug.tty.TTY.main(TTY.java:1095)

Fatal error:
Unable to attach to target VM.

Использование Android Studio IDE / GUI Однако я могу подключить отладчик одним нажатием кнопки. Не могу выполнить отладку с помощью Android Studio из-за моей ситуации.

1 Ответ

0 голосов
/ 30 мая 2020

Похоже, что это сама Android Studio, вызывающая эту проблему ... Кроме того, завершение работы сервера adb с запущенной Android Studio заставляет сервер adb автоматически перезагружаться. Решением здесь является не запускать Android Studio, выполняя сеанс JDB из командной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...