【问题标题】:Impossible to create an Android Virtual Device for Android 7.0+ in Visual Studio for Mac?无法在 Visual Studio for Mac 中为 Android 7.0+ 创建 Android 虚拟设备?
【发布时间】:2017-11-20 20:16:22
【问题描述】:

这是首次安装 Visual Studio for Mac 时 Xamarin SDK 管理器的外观。仅下载/安装了 Android 6.0 项目,并且仅安装了图中的项目:

默认情况下,一个名为“Android_Accelerated_x86”的 Android 虚拟设备已预先配置,可供我在安装 Visual Studio for Mac 并更新 Xamarin 时使用。据我所知,它是使用上面屏幕截图中的“Google APIs Intel x86 Atom 系统映像”创建的 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 系统映像”,它自动预装在适用于 Android 6.0 的 Visual Studio for Mac 中。

理论上,我认为这应该是我创建新虚拟设备所需的全部内容。在 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 部分说“没有为此目标安装系统映像”。此外,如果我选择“Android 6.0 – API Level 23”的目标,它会说“没有为此目标安装系统映像”,就像它为 Android 7.0 及更高版本所做的那样.

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

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

【问题讨论】:

    标签: xamarin xamarin.android avd android-sdk-manager


    【解决方案1】:

    Visual Studio for Mac (VS4M) 使用 Android SDK Tools 版本 25 中的 Android Emulator Manager。Google 的该版本不支持更高版本的 Android Virtual Devices AVD API。

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

    如其所述,最新版本的 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,但我已经使用它来编写/编译 Xamarin.Android 绑定库的 Java 库、访问 Android Instant Apps 工具等......还有它的Android SDK 平台和工具管理器比 Xamarin 的“更好”(恕我直言/这是个人喜好...)。

    【讨论】:

    • 如果您遇到bugzilla.xamarin.com/show_bug.cgi?id=59714,请告诉我,因为我相信我们有一个错误阻止通过avdmanager 正确创建 AVD。
    • 谢谢。我有一个使用新项目中出现的 AVD 管理器图标的模拟器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多