65.9K
CodeProject 正在变化。 阅读更多。
Home

如何在 Android Studio 和 Visual Studio 2019 中的 Android 模拟器上运行 Google Play

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.83/5 (5投票s)

2020年4月24日

CPOL

8分钟阅读

viewsIcon

42833

downloadIcon

116

一些可能有助于您运行模拟器并使其在 Android Studio 和 Visual Studio 2019 之间共享的技巧

难道不应该很容易吗?

你是否因为无法让 Google Play 在 Android 模拟器上运行而抓耳挠腮?你是否自问:“让这么简单的事情正常工作难道不应该更容易些,这样你就可以回去写代码了?”你在 GUI(至少在 Visual Studio 端)中看到了选项(针对 Google Play 商店),甚至在 AVD 管理器中也看到了一些相关的引用。然而,实际上让它在模拟器中激活却变得难以捉摸。好了,别再抓头发了。本文将有望让这项任务变得容易得多。

背景

也许你磁盘空间有限,不想因为安装了 Android Studio 和 Visual Studio 的两个 Android 镜像实例而“浪费”空间。或者你只想管理一套模拟器镜像和 Android SDK,并且希望你的模拟器支持 Google Play 商店,但就是无法让 AVD 管理器(无论是在 Visual Studio 还是 Android Studio 中)的 GUI 使之生效。无论哪种情况,当你只需要处理一套模拟器时,让 Google Play 商店生效都会更容易。

在本文中,我将解释如何让两个 IDE 使用相同的 SDK。然后,我将解释如何让模拟器使用 Google Play 商店。

让两个 IDE 使用相同的 SDK

  1. 安装 Android Studio 和必要的 SDK,包括模拟器和 Play 商店。
    1. 我发现 Android Studio 通常拥有最新的镜像,所以请从 Android Studio 端进行此操作。
  2. 安装 Visual Studio,确保也选择 Android SDK。
  3. 所有 IDE 安装完成后,**启动 Android Studio**,然后点击 **File** > **Settings** > **Appearance & Behavior** > **System Settings** > **Android SDK**

    1. 记下“**Android SDK Location:**”框中显示的路径
  4. **启动 Visual Studio**,然后点击 **Tools** > **Options** > **Xamarin** > **Android Settings**

    1. 记下 Android SDK Location 的现有路径(以便稍后删除或重命名)
    2. 更改 Android SDK Location 的路径值,使其与 Android Studio 中显示的路径匹配
  5. 点击 **OK** 保存 Visual Studio 中的设置。然后关闭并重新打开 Visual Studio,使更改完全生效。

您只需完成这些步骤即可让两个 IDE 使用相同的 SDK。

让 Google Play 在您的模拟器中运行

1. 值得提及的常见问题

1. 未安装最新更新

  1. 我再怎么强调都不为过。安装最新版本的镜像。确保每个镜像 SDK 都已安装最新的可用版本。我建议从 Android Studio 更新,而不是从 Visual Studio 更新,因为(假设您使用的是单个 SDK 位置(参见上文))Android Studio 似乎能更快地获取新版本。我无法告诉你 Google Play 包在我身上出了多少次故障,只有在更新到最新的 Platform Images、最新的 Emulator 和 Build tools 后才得以修复。
    1. 您可以通过在 Android Studio 中点击 **File** > **Settings** > **Appearance & Behavior** > **System Settings** > **Android SDK** 来更新 SDK。

    2. 别忘了选择右下角的复选框“**Show Package Details**”以查看所有可用的软件包。通常,Google Play 启用的软件包默认甚至没有被选中。请务必勾选它们。

2. 您无法在 GUI 中启用 Google Play

  1. 首先,我认为值得一提的是,关于这个主题有很多讨论和论坛帖子。许多人提出了各种解决问题的方法,但很少有人解决了我认为是这个问题真正根源的问题:*Android Studio 和 Visual Studio 端 AVD 管理器中的 Bug,导致无法正确创建配置文件。*
  2. 什么?它们都有问题?是的。让我解释一下。在本文撰写之时(2020 年 4 月 23 日),如果您在 Android Studio 中修改或创建任何 AVD,即使您选择了一个标有“Google Play”的 SDK Android 镜像,您也不会收到启用 Google Play 商店的选项。

    1. 事实上,如果您尝试编辑一个现有的“内置”设备(随 Android Studio AVD 安装一起发布的设备),该设备显示有 Google Play,并保存该修改,它将失去使用 Google Play 的能力。
    2. Visual Studio 会产生相同的结果。在 Visual Studio AVD 的修改窗口中,有两个复选框,一个标有“Google APIs”,另一个标有“Google Play Store”。这两个复选框都应该对应于该 AVD 配置中的设置。不过,不要浪费时间去点击它们,它们是无用的复选框,因为它们的值实际上并没有写入 AVD 的配置文件中。您可能可以也可能不能同时勾选这两个(老实说,我认为这与 AVD 的硬件配置文件有关,该文件位于* %localappdata%\Android\Sdk\tools\lib\devices.xml*,但我不知道如何向此文件添加配置文件,因为我找不到有关正确结构和选项的文档)。

2. 那么,如何才能让它运行起来呢?

  1. 简短回答:自己修改*config*文件。
  2. 长篇回答:由于两个 IDE 的 AVD 管理器存在 Bug,您可能已经意识到需要自己修改配置文件。您可能不知道文件在哪里。以下说明将帮助您。
    1. 首先,停止尝试使用 GUI 修改您的 AVD,这只会破坏您的 AVD。
    2. 导航到以下目录(或您保存 AVD 的任何位置)
      1. C:\Users\YOUR_USERNAME\.android\avd
    3. 如果 AVD 正在运行,请将其关闭。请通过模拟器电源按钮**完全**关闭(就像关闭真实设备一样)。
    4. 在此目录中,您将看到列出的所有 AVD,每个 AVD 都有一个目录和一个文件。在开始捣鼓之前,快速复制一份您想要修改的文件。这可能需要一些时间,因为某些镜像文件相当大。
    5. 接下来,进入您想要修改的 AVD 的目录,找到名为
      1. config.ini
      2. 的文件,并用文本编辑器打开它。
    6. 在此文件中找到以“PlayStore.enabled”开头的行。
    7. 确保整行显示“PlayStore.enabled = true
    8. 现在,找到以“image.sysdir.1”开头的行。
      1. 该行可能具有**不正确**的值,例如“system-images\android-29\google_apis\x86”或“system-images\android-29\default\x86”。
      2. 这应该是模拟器将使用的*镜像*目录的路径。看起来 AVD 管理器无法添加“playstore”路径。您需要确保路径指向一个有效的镜像路径,**并且**该路径必须是指向已启用 Play 商店的镜像的路径。在本文撰写之时,我系统中的 Platform Image Q 的路径是
        1. system-images\android-29\google_apis_playstore\x86

          1. 在此文件中使用相对路径,如上所示。但是,仅供您参考,完整路径是:*C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk\system-images\android-29\google_apis_playstore\x86*
          2. 请注意路径中添加的“_playstore”,这是关键,但您还没做完。
          3. 完整的行应该看起来像这样
          4. image.sysdir.1=system-images\android-29\google_apis_playstore\x86_64\
      3. 在此文件中更新所有指向相同目录的路径,以包含目录名称中的“_playstore”部分。
    9. 这样,AVD 才能在 AVD 管理器中正确显示在 AVD 列表中。要添加或修改,请添加以下行项目:
      1. tag.display=Google Play
        tag.id=google_apis_playstore
    10. 保存文件并关闭它。
    11. 现在,用文本编辑器打开“hardware-qemu.ini”文件。
    12. 同样,您将找到并修改或添加值“PlayStore.enabled = true”。
    13. 接下来,更新 SDK 镜像的路径,使其都指向 PlayStore 版本
      1. kernel.path
        			disk.ramdisk.path
        			disk.systemPartition.initPath
        			disk.vendorPartition.initPath
      2. 在此文件中使用完整路径,不要使用相对路径。这些路径通常应与您在修改*config.ini*文件时使用的路径匹配,但不一定是相对的。
        1. 完整的行应该看起来像这样
          kernel.path = C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk\
          system-images\android-29\google_apis_playstore\x86\kernel-ranchu-64
          disk.ramdisk.path = C:\Users\YOUR_USERNAME\AppData\Local\Android\
          Sdk\system-images\android-29\google_apis_playstore\x86\ramdisk.img
          disk.systemPartition.initPath = C:\Users\YOUR_USERNAME\AppData\Local\
          Android\Sdk\system-images\android-29\google_apis_playstore\x86\system.img
          disk.vendorPartition.initPath = C:\Users\YOUR_USERNAME\AppData\Local\
          Android\Sdk\system-images\android-29\google_apis_playstore\x86
      3. 这里还有一个旁注,您甚至可能会发现现有路径是错误的,可能包含双反斜杠。这是由于有 Bug 的 AVD 管理器在写入它们时造成的。请继续修复任何错误的路径,使其指向正确的目录或文件。
      4. 保存并关闭文件。

关注点

顺便说一下,AVD 要想实际启动,在其目录中只需要三个文件

  1. config.ini
  2. sdcard.img
  3. userdata.img

如果您想完全重置 AVD,可以删除 AVD 目录中的所有其他文件和目录,只留下这三个文件。

如果您这样做,请仅根据上述说明修改*config.ini*文件,然后重新启动您的 AVD,当 AVD 启动时,*hardware-qemu.ini*文件将得到正确写入。

您可以下载一些示例 ini 文件:exampleINIFiles.zip

历史

  • 2020 年 4 月 24 日:初始版本
© . All rights reserved.