У меня есть среда разработки, настроенная на виртуальной машине Hyper-V (Windows 10). Использование Visual Studio 2019 в качестве моей IDE с Xamarin (проект monodroid
). Мое физическое устройство не может «пройти» из-за решений, принятых дизайнерами Hyper-V, из того, что я прочитал. Я также пытался использовать обходные пути, к сожалению, устройство не отображается (даже в Device Manager
) на гостевой машине.
Сначала я не смог увидеть устройство (в среде IDE), однако после некоторых исследований и работы мне удалось показать устройство. Я использовал this , чтобы «обмануть» adb
, запущенный на гостевой системе, чтобы увидеть устройство (которое подключено к моей физической машине). Хост-машина запускает сценарий с IP 192.168.1.13
на порту 6037
(adb daemon
работает на 5037
, по умолчанию). Гостевой компьютер запускает сценарий с remotehost
, установленным на Host IP, с тем же портом. Я считаю, что эта конфигурация в порядке, согласно документации.
К сожалению, несмотря на то, что я могу развернуть на своем устройстве, отладчик не может подключиться, и я получаю Cannot start debugging: Cannot connect to 127.0.0.1:29300: No connection could be made because the target machine actively refused it 127.0.0.1:29301
Couldn't connect debugger. You can see more details in Xamarin Diagnostic output and the full exception on logs.
Из того, что я понял, отладчик пытается подключиться к localhost
, и, поскольку IDE работает в гостевой системе, физическое устройство не будет иметь localhost:29301
. Я предполагаю, что если я смогу подключить IDE к 192.168.0.13:29301
(IP-адрес хоста), он найдет устройство, учитывая, где оно подключено.
Когда я запускаю adb devices
, и хост, и Гость показывает физическое устройство, и после попытки запустить отладчик, работающий adb forward --list
, правила пересылки таковы:
V4QBB18807150883 tcp: 29300 tcp: 29300
V4QBB18807150883 tcp: 29301 tcp : 29301
Я также вижу в Xamarin Diagnostics
, что setprop "debug.mono.extra" "debug=127.0.0.1:29302:29303,timeout=1585047190,loglevel=0,server=y"
выполняется. Я предполагаю, что манипулирование этим принесло бы мне некоторую радость, но я не знаю как.
Я не слишком знаком с adb
и сетью, поэтому любой, кто имеет больше опыта в этом вопросе, мог бы пролить свет в моей ситуации.
Как я могу заставить отладчик (в гостевой системе) подключиться к моему физическому устройству?
PS: я много искал, прежде чем спрашивать здесь. Я знаю, что это существует: Как я могу подключиться к Android с помощью ADB через TCP? , и даже после многократного ответа на этой странице, я не смог решить свою проблему.