Xamarin跨平台应用在VS模拟器中卡于“Waiting for runtime checks to complete”
解决Xamarin应用在Hyper-V模拟器上卡在“Waiting for runtime checks to complete”的问题
我来帮你梳理几个针对这个问题的解决方向,都是实际开发中验证过的有效方案:
检查Hyper-V虚拟机的网络配置
打开Hyper-V管理器,找到对应的VS模拟器虚拟机,右键进入设置面板,定位到网络适配器选项:- 确认当前使用的是Default Switch,如果之前用的是其他交换机,尝试切换到Default Switch
- 也可以尝试创建一个新的内部虚拟交换机,分配给模拟器后重启测试
网络配置异常经常会导致模拟器和调试进程之间的通信受阻,进而卡在运行时检查步骤。
优化模拟器性能与配置
模拟器资源不足或配置损坏也可能引发这个问题:- 在VS的模拟器管理器中找到该Marshmallow模拟器,点击编辑按钮
- 把分配的内存调高到至少2GB,确保硬件加速选项处于启用状态
- 直接创建一个全新的API 23模拟器,排除原有模拟器镜像损坏的可能
同时关闭电脑上不必要的后台进程,给模拟器预留足够的系统资源。
调整Xamarin项目的调试配置
尝试修改项目的Android调试选项,减少运行时检查的复杂度:- 右键Android项目,选择属性 -> Android Options -> Advanced
- 取消勾选Enable developer instrumentation (debugging and profiling)
- 勾选Fast deployment (debug mode only),这个选项可以大幅缩短部署时间,跳过部分不必要的运行时检查
修改后重新编译并部署应用。
更新相关组件到稳定版本
你当前使用的VS 15.7.1和Xamarin Forms 3.0.0.482510都属于比较早期的版本,存在一些已知的模拟器兼容性问题:- 把VS更新到15.7分支的最新补丁版本(微软会给旧分支推送安全和兼容性修复)
- 将Xamarin Forms升级到3.0.x系列的最新稳定版本,或者尝试升级到3.1.x版本(兼容性更好)
- 确保Android SDK的Build Tools、Platform Tools是API 23对应的最新版本
重置Hyper-V服务
有时候Hyper-V服务运行异常会导致模拟器工作不正常,以管理员身份打开命令提示符,执行以下命令重置服务:net stop vmms net start vmms执行完成后重启电脑,再尝试启动模拟器和部署应用。
排除防火墙/杀毒软件干扰
第三方杀毒软件或Windows防火墙可能会拦截模拟器和Xamarin调试进程的通信:- 暂时关闭防火墙和杀毒软件,测试是否能正常推进
- 如果关闭后问题解决,把VS模拟器相关进程(比如
Emulator.exe、devenv.exe)添加到信任列表
如果以上方案都没有效果,你可以尝试用Android Studio的Hyper-V兼容模拟器来测试你的Xamarin应用,看是否能正常运行,这样可以进一步定位是VS模拟器的问题,还是Xamarin项目本身的配置问题。
内容的提问来源于stack exchange,提问作者JCB2018
相关产品推荐
相关产品推荐

