VS虚拟机与intel Atom(X86)虚拟机运行冲突问题

如何解决Hyper-V 与 HAXM 的冲突问题...

微软Visual Studio 2015的安卓模拟器与 Android基于intel Atom(X86)建立的虚拟机无法共存于一个系统中,目前解决此问题的办法是二者只能选其一...

工具/原料

  • Hyper-V;
  • Visual Studio Emulator for Android;VS虚拟机;
  • Intel HAXM;
  • intel Atom(X86)虚拟机;

方法/步骤

  1. 1

    一、VS的虚拟机运行问题

          如果初次运行VS的虚拟机失败,大多是下图中的Hyper-v功能没有添加,

    VS虚拟机与intel Atom(X86)虚拟机运行冲突问题_第1张图片
  2. 2

    失败的相关提示:

    VS虚拟机与intel Atom(X86)虚拟机运行冲突问题_第2张图片
  3. 3

    点击 "Open log",提示很清楚,意思是Hyper-V没有启动,需要添加此功能并且让服务运行起来才行:

    VS虚拟机与intel Atom(X86)虚拟机运行冲突问题
  4. 4

     解决这一问题比较简单,在”控制面板-添加删除程序“中点击”启用或关闭Windows功能“,将Hyper-V项打上勾(子项会自动全部打勾),安装完毕后重新启动机器。

  5. 5

     注意:

          添加了这个功能,如果当前用户不是Administrator,或者当前用户有超级用户权限但用户名称不为Administrator,可能虚拟机还是不能运行起来,还必须在用户账户中将Administrator添加进“Hyper-V Administrators”用户组!

         方法是:

         依次点击“计算机管理--本地用户和组--组”,选中 Hyper-V Administrators,点击右键,选择属性,

    VS虚拟机与intel Atom(X86)虚拟机运行冲突问题
  6. 6

    在打开的对话框中查看,如果成员列表中没有Administrator,则点击下面的添加,将其添加进去:

    VS虚拟机与intel Atom(X86)虚拟机运行冲突问题_第3张图片
  7. 7

    完成上面的设置,VS的虚拟机应该能正常启动了。

  8. 8

    二、Android基于intel Atom(X86)虚拟机

          简单地说,这种虚拟机允许Android模拟器能够以原始速度(真机运行速度)运行在使用Intel x86处理器的电脑中。

         如何建立这样的虚拟机,不用多说,类似下图:

    VS虚拟机与intel Atom(X86)虚拟机运行冲突问题_第4张图片
  9. 9

      问题来了:

             如果系统中有了上面的VS虚拟机并能成功运行,就算此时VS虚拟机没有真正运行,Android intel Atom(X86)虚拟机也是无法运行的,如果运行Atom(X86)虚拟机或者手动再次安装Intel haxm,出现如下图提示,大意是说,Intel haxm支持需要打开VT-X(虚拟化技术Virtualization Technology):

    VS虚拟机与intel Atom(X86)虚拟机运行冲突问题_第5张图片
  10. 10

    显示,前面在启用VS虚拟机时,在BIOS中是打开了这个功能的,系统也是支持的,不知道为什么运行Atom(X86)虚拟机时会说没有打开!

  11. 11

    解决办法:

         1、要运行Atom(X86)虚拟机,在“启用和关闭Windows功能”中,将Hyper-V取消掉,重新启动机器;

        2、重启后,有必要的话重新安装Intel(R) Hardware Accelerated Execution Manager (HAXM);

  12. 12

    要说明的是,这种解决办法简单但很粗暴:如果想再次运行VS虚拟机,必须再次重新添加Hyper-V.

    也就是说,二种虚拟机不能在系统中同时共存(或者叫同时运行),这应该是一个BUG。

    目前还没有彻底解决这一问题的有效方案。只能采取这样粗暴的办法,根据自己的需要进行取舍!虽然麻烦,但也是没有办法的办法。

  13. 13

    有人用编辑启动菜单的方法,达到切换有相应配置的系统的目的,类似下面的命令:

    1. bcdedit /copy {current} /d "Windows 8 - no hypervisor" 2. bcdedit /set {identifier for the new boot entry (copy from the output of the 'bcdedit' command above)} hypervisorlaunchtype off

    虽然还是治标不治本,但也是解决问题的一种思路吧。

你可能感兴趣的:(C#基础类,IT基础类,XAMARIN技术总结)