Hyper-V嵌套Win2019 VM中VS2019开发Xamarin Android报错如何解决
针对Hyper-V虚拟机内Visual Studio 2019 Xamarin Android开发的可行方案
核心限制说明
当前场景的核心障碍为嵌套虚拟化环境下,Hyper-V虚拟机内部无法二次启用Windows Hypervisor Platform,导致x86架构Android模拟器缺少硬件加速支持无法正常启动,日志中出现的-prop相关警告为非核心提示,不会阻碍功能正常运行。
可用解决方案
- 使用物理安卓设备调试(最优选择)
- 打开目标安卓设备的「开发者选项」,开启USB调试功能,同局域网下也可额外开启无线调试
- 若使用USB连接,将设备插入宿主机后,通过Hyper-V管理控制台将USB设备重定向到运行Visual Studio 2019的Windows Server 2019虚拟机;若使用无线调试,保证虚拟机与安卓设备在同一局域网下
- 在虚拟机内的Visual Studio 2019设备列表中直接选中识别到的物理设备,即可正常运行调试项目,性能远高于模拟器方案
- 使用ARM架构模拟器镜像
- 打开Visual Studio内置的Android设备管理器,创建新的模拟器实例
- 系统镜像选择ABI为
armeabi-v7a或arm64-v8a的版本,不要选择x86/x86_64架构镜像,ARM架构镜像无需硬件加速即可在嵌套虚拟化环境下运行 - 该方案运行性能较低,建议选择API 28及以下版本的镜像降低性能开销,适合临时调试场景使用
- 宿主机部署模拟器,虚拟机远程连接调试
- 在宿主机Windows Server 2016系统上安装Android SDK,配置并启动可正常运行的Android模拟器实例(宿主机可正常启用Windows Hypervisor Platform实现硬件加速)
- 宿主机防火墙放行5555端口,在宿主机的adb命令行执行
adb tcpip 5555开启端口监听 - 进入虚拟机内的adb命令行,执行
adb connect 宿主机局域网IP:5555,连接成功后Visual Studio 2019的设备列表会直接显示宿主机上运行的模拟器,调试性能与本地运行基本一致
内容的提问来源于stack exchange,提问作者Mehdi Anis
相关产品推荐
相关产品推荐

