Visual Studio: Xamarin - 启动 Android 模拟器时出错

17
https://dotnet.microsoft.com/learn/xamarin/hello-world-tutorial/devicesetup上遇到问题。
操作系统:Windows 10 Pro。
在Visual Studio中使用Hello World xamarin示例时,无法启动Android模拟器。
当我在Android设备管理器中单击“运行”按钮时,错误立即出现(请参见附件)。
错误-AndroidDeviceManager(包括Google Play / Google API的模拟器) enter image description here 模拟器错误。
设备错误:警告:意外的'-prop'值('monodroid.avdname = pixel_2_pie_9_0_ - _api_28'),只支持'qemu.'属性。 警告:意外的'-prop'值('emu.uuid = 4b63b139-cc77-4b66-9200-0d25f8fc545e'),只支持'qemu.'属性。
当模拟器不使用Google Play / Google API时,出现相同的错误。

enter image description here

当模拟器不使用Google Play / Google API时出现相同的错误

enter image description here

Windows规格 版本:Windows 10 Pro 版本号:1909

处理器 AMD Ryzen 9

任务管理器: 性能:虚拟化已启用

cmd - systeminfo: Hyper-V要求:VM监视器模式扩展:是 固件中启用了虚拟化:是 第二级地址转换:是 可用的数据执行预防:是

Visual Studio 2019 在此输入图片描述

Windows功能开/关(参见附件-显示启用了超级V/虚拟化) WindowsFeatures 在此输入图片描述

我也尝试过这种方式——添加虚拟机平台——但出现了相同的错误 在此输入图片描述

Android SDK设置

Android SDK - Platform

Android SDK - Tools - part 1

Android SDK - Tools - part 2

Android SDK - Tools - part 3

Android SDK版本: enter image description here

问题是否与Android SDK工具相关,只显示Android SDK命令行工具版本1.0至2.1? 问题是否与右下角可能缺少的Android存储库有关? enter image description here

我现在也将Android SDK存储库包含在工具中-但仍然无法正常显示: enter image description here


1
看看这个帖子中的解决方案可能会有所帮助。 - nevermore
谢谢Jack - 非常有帮助。我看了一下那个线程,好像我也做了同样的事情 - 我双重检查了Android SDK - 看起来没问题?我会在主要信息中更新我的Android SDK设置的截图。 - amrit
您是否正在使用最新版的Visual Studio?您可以尝试创建一个新的模拟器而不勾选Google Play吗? - nevermore
1
我认为你应该向开发者社区报告这个问题。 - nevermore
是的,等待响应。 - nevermore
显示剩余4条评论
10个回答

6

您还应该在“打开或关闭Windows功能”中检查虚拟机平台。同时,请注意,您链接的教程使用的是Android设备进行USB调试。

编辑 以下是我的Android SDK Manager设置
平台设置

平台选项卡

工具

工具选项卡


谢谢您的建议 - 我已经更新了我的虚拟机平台 - 但是仍然出现相同的错误。我会在主查询中附上截图,以防需要更新其他内容。我还尝试了直接使用Android设备的另一种选项 - 这很好用 - 没有任何问题,但我想以最佳方式让Android模拟器工作,这样可以避免每次都要部署到自己的设备上。 - amrit
请注意 - 我分享的链接描述了如何使用物理 Android 设备和 Android 模拟器进行调试。 - amrit
你的“工具”设置似乎与我的不同。请确保你已经安装了最新版本的Android SDK Manager和Android Device Manager。作为比较,我使用的是Windows 10 Core i7,Device Manager版本号为16.6.0.48。最后,如果你遇到问题,可以尝试在Device Manager中创建一个新的模拟器。我最近也不得不这样做过。 - Blanthor
谢谢,你能发一下设置的截图供我尝试更新吗? Android SDK 管理器似乎是最新的。我该如何检查/更新 Android 设备管理器? 此外,你能否发送 Android 设备管理器中模拟器的屏幕截图? 对于模拟器,我使用默认选项进行设置,如果有用的话,我可以尝试使用您的设置。 - amrit
1
已添加SDK Manager的图片。您可以在Android SDK和工具窗口右下角的设置下检查您的版本。 - Blanthor
谢谢!我也在主要信息中添加了Android SDK Manager的截图。 我的Android SDK Manager版本是16.7.0.13。我的Android SDK工具-只显示Android SDK命令行工具版本1.0到2.1...这正确吗? Android存储库显示在右下角-同样不确定是否相关。 - amrit

4

我之前也遇到了同样的问题,但是我已经按照以下步骤解决了它:

  1. 禁用 [Hyper-V] 和 [Windows Hypervisor Platform]。
  2. 重启电脑。
  3. 启用 [Hyper-V] 和 [Windows Hypervisor Platform]。
  4. 再次重启电脑。

4
  1. 通过以下命令在命令行中禁用超级虚拟化(hyper-v),然后重启电脑。

    bcdedit /set hypervisorlaunchtype off

  2. 使用以下命令启用超级虚拟化(hyper-v)并重新启动。

    bcdedit /set hypervisorlaunchtype auto

现在我的模拟器可以运行了!

根据这里的文章,看起来存在某种虚拟化冲突,这会影响到Linux VMs的创建,但是这些步骤可以解决这个问题。

suzukimi提供的答案是正确的,但我提供了命令和额外信息。


这些命令确实是解决方案。来自Vitenuto的下面的命令是导致此错误的原因。我不确定它们之间的区别。它们看起来是相同的命令。 - Emil

3

我曾经遇到过完全相同的问题,于是我进入我的UEFI设置,发现我的SVM模式被禁用了。我不知道你使用的是什么主板,但对于技嘉来说,通常在以下位置:

M.I.T → 高级CPU核心设置 → SVM模式


1
谢谢您 - 我使用的是华硕主板,在UEFI设置中已启用SVM:______
高级 -> CPU配置 -> SVM模式
我认为这也显示在我之前突出显示的命令提示符中:
命令提示符,cmd:systeminfo
Hyper-V要求: VM监视器模式扩展:是
固件中启用虚拟化:是
二级地址转换:是
可用数据执行预防:是
- amrit

2

我为这个问题苦恼了两天。我甚至安装了Android Studio并运行了它自己的模拟器,以确保问题不是Xamarin引起的。最终问题得到解决。在我的Dell笔记本电脑上运行Windows 10并安装了Hyper-V,有两个问题导致了这个问题:

  1. 以管理员模式运行命令提示符。输入bcdedit。在最后一个条目中,确保hypervisorlaunchtype关闭。默认情况下,它设置为自动。 要更改此设置,请输入:
bcdedit /set hypervisorlaunchtype off

管理员提示

  1. 确保在笔记本电脑屏幕上运行模拟器,而不是其他显示器。不知何故,当 Android 模拟器在其他显示器上运行时,会导致我的笔记本电脑图形驱动程序崩溃。

2

我也遇到了同样的问题,通过在BIOS中打开虚拟化功能解决了它。


0

我在输入一些ADB推荐给我的命令时遇到了同样的问题。过了一会儿,我意识到即使是WSL也无法工作(Ubuntu在WSL和Docker中),所以我开始排除故障并最终找到了解决方案。

DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
bcdedit /set hypervisorlaunchtype auto

来源

在PowerShell中输入这个命令,解决了我在Hyper-V和WSL中遇到的所有问题。


0
这件事最近发生在我身上。经过一些研究,我发现问题出在 Microsoft Hyper V 上,但我尝试使用它的机器是 Windows 10 家庭版。它必须是专业版、企业版等等。它与该版本的 Windows 不兼容。希望这可以帮到你。

你能提供一个来源吗? - SimonC

0

进入BIOS并启用虚拟化技术,当然还要确保Windows功能(Hyper-V已安装-所有组件)。

在我的情况下,当我更换CPU电池时,BIOS被重置了。


不知道为什么会被踩,当我真正经历并用这种方式解决了它。这可能对OP没有帮助。但这是上述问题的解决方案之一。我遇到了同样的错误,我在BIOS中启用了虚拟化来解决它。 - Gautam Jain

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接