【发布时间】:2020-07-04 20:52:24
【问题描述】:
我在 Hyper-V 虚拟机 (Windows 10) 中设置了开发环境。使用 Visual Studio 2019 作为我的 Xamarin IDE(monodroid 项目)。
根据我的阅读,由于 Hyper-V 设计人员做出的决定,我的物理设备无法“通过”。
我也尝试过使用变通方法,不幸的是,设备没有出现在 Guest 机器中(即使在 Device Manager 中)。
我最初无法看到设备(在 IDE 中),但是,经过一些研究和工作,我设法让设备显示出来。我使用this 来“欺骗”在来宾上运行的adb 以查看设备(连接到我的物理机)。
主机使用 IP 192.168.1.13 在端口 6037 上运行脚本(adb daemon 在 5037 上运行,这是默认设置)。来宾机器运行脚本,remotehost 设置为主机 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时,Host和Guest都显示物理设备,在尝试运行调试器后,运行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" 被执行。我认为操纵它会给我一些快乐,但是,我不知道如何。
我对@987654340@ 和网络不太熟悉,所以任何对此问题有更多经验的人都可以对我的情况有所了解。
如何让调试器(在来宾中)连接到我的物理设备?
PS:在这里问之前我已经搜索了很多。我知道这存在:How can I connect to Android with ADB over TCP?,即使在该页面上尝试了多个答案后,我也无法解决我的问题。
【问题讨论】:
-
@AlexP。谢谢你的评论。我相信
adbportforward.jar实用程序基本上可以按照您的回答在内部建议。如果我的假设有误,请纠正我
标签: android windows xamarin virtual-machine usb-debugging