无法在 Mac 的 Visual Studio 中为 Android 7.0+ 创建 Android 虚拟设备?

Impossible to create an Android Virtual Device for Android 7.0+ in Visual Studio for Mac?

这是首次安装 Visual Studio for Mac 时 Xamarin SDK 管理器的外观。只有 Android 6.0 项目是 downloaded/installed,并且只安装了如图所示的项目:

默认情况下,当我为 Mac 安装 Visual Studio 并更新 Xamarin.据我所知,它是使用上面屏幕截图中的“Google APIs Intel x86 Atom System Image”创建的 AVD,使用 Android 6.0.

我可以使用 Xamarin 项目调试此 Android_Accelerated_86 AVD。它按预期工作正常。

我现在想使用 Android 7.1 创建一个 AVD。我所做的是在 Visual Studio for Mac,我打开了 xamarin SDK Manager,并下载了以下项目(在图片中选中):

你可以看到我为 Android 7.1 下载了名称相似的“Google APIs x86 Atom 系统映像”,因为 Visual Studio 自动预装了Mac 对于 Android 6.0.

理论上,我认为这应该是我创建新虚拟设备所需的全部内容。在 visual studio 中,我转到 Tools > Google Emulator Manager,然后单击“Create...”尝试创建虚拟设备。对于设备,我尝试选择 Nexus 10、Nexus 9、Nexus One、10.1" WXGA 平板电脑等。无论我选择什么设备,如果我选择 Android 7.0.7.1 或 8.0 的目标, CPU/ABI 部分说 "no system images installed for this target"。此外,如果我选择目标“Android 6.0 – API 级别 23”,它会说“没有为此目标安装系统映像” ,就像 Android 7.0 及更高版本一样。

我创建新虚拟设备的唯一方法是选择目标“Google APIs (Google Inc.) - API Level 23 ”,然后它会让我选择“Google APIs Intel Atom (x86)”,我假设这是因为我有“Google APIs Intel x86 Atom Image”从 Android 6.0 部分安装。但是我也为 Android 7.1 版本安装了相应的图像,所以 为什么我不能至少选择一个 Android 7.1 的目标并获得一个 CPU/ABI 选择“Google APIs Intel x86 Atom 映像”?我的图像类型与为 Android 6.0!

安装的图像类型相同

我在两台不同的机器上试过,结果完全一样。我也尝试过为 Android 7.0 和 8.0 下载合适的图像,但我仍然遇到同样的问题 - 我无法创建 Android 超过 Android 6.0 版的 AVD。有没有人成功使用 SDK Manager 和 Google Emulator Manager 来配置带有 Android 7.0 或更高版本的 AVD?我能找到的关于此类问题的所有现有讨论仅显示 Android 6.0 或更早版本。我还使用最新版本的 Visual Studio 对 Mac 进行了测试,并通过稳定的自动更新渠道完全更新了我的所有 Xamarin 组件。

Visual Studio for Mac (VS4M) 在 Android SDK 工具版本 25 中使用 Android 仿真器管理器。Google 的版本不支持更高版本 Android 虚拟设备 AVD API。

如果您将 Android 工具版本升级到最新版本(当前为 27.01),您将在尝试从 VS4M 工具打开 Google 模拟器管理器时收到此消息菜单:

如其所述,最新版本的 Google Android 工具删除了用于创建 AVD 的独立 GUI。

因此,您可以使用位于 Android SDK (android-sdk-macosx/tools/bin) 中的 avdmanager 通过命令行创建它们。

❯ ./avdmanager

Usage:
      avdmanager [global options] [action] [action options]
      Global options:
  -s --silent     : Silent mode, shows errors only.
  -v --verbose    : Verbose mode, shows errors, warnings and all messages.
     --clear-cache: Clear the SDK Manager repository manifest cache.
  -h --help       : Help on a specific command.

Valid actions are composed of a verb and an optional direct object:
-   list              : Lists existing targets or virtual devices.
-   list avd          : Lists existing Android Virtual Devices.
-   list target       : Lists existing targets.
-   list device       : Lists existing devices.
- create avd          : Creates a new Android Virtual Device.
-   move avd          : Moves or renames an Android Virtual Device.
- delete avd          : Deletes an Android Virtual Device.

我个人使用替代它的那个,它在 Android Studio 中 (Tools / Android / AVD Manager):

要使用这个确实意味着您需要下载完整的 Android Studio dmg 但我已经将它用于 writing/compiling Java 库和 Xamarin.Android 绑定库,访问 Android Instant Apps 工具等...还有它的 Android SDK 平台和工具管理器比 Xamarin 的 "better"(IMHO/Its 个人喜好...) .