如果在尝试在Android模拟器上启用Google Play商店时遇到了困难,可能会感到沮丧。本文将指导如何轻松地在模拟器中启用Google Play商店,以便可以继续编写代码。
可能磁盘空间有限,不想为了同时在Android Studio和Visual Studio中安装Android镜像而“浪费”空间。或者只想管理一套模拟器镜像和Android SDK,并希望模拟器支持Google Play商店,但无法让AVD管理器的GUI生效。无论如何,当只需要处理一套模拟器时,启用Google Play商店会更容易。
在本文中,将解释如何让两个IDE使用相同的SDK。然后,将解释如何让模拟器使用Google Play商店。
安装Android Studio和需要的必要SDK,包括模拟器和Play商店。
发现Android Studio通常有最新的镜像,所以从Android Studio这边进行操作。
安装Visual Studio,确保选择AndroidSDK。
安装完所有IDE后,
启动Android Studio
File > Settings > Appearance & Behavior > System Settings > AndroidSDK
注意“Android SDK Location:”框中列出的路径:
Tools > Options > Xamarin > Android Settings
注意现有的Android SDK Location路径(以便稍后删除或重命名)
将Android SDK Location的路径值更改为与Android Studio中列出的路径匹配:
点击OK以保存Visual Studio中的设置。然后关闭并重新打开Visual Studio,以便更改完全生效。
这就是让两个IDE使用相同SDK所需的全部操作。
1. 没有最新更新
再怎么强调也不为过。确保镜像是最新版本。确保每个镜像SDK都有最新的可用版本。建议从Android Studio更新,而不是Visual Studio,因为(假设使用单一SDK位置(见上文))Android Studio似乎更快地获得新版本。不知道有多少次Google Play包在身上崩溃,只能通过更新到最新的平台镜像、最新的模拟器和构建工具来修复。
可以通过点击Android Studio中的以下路径来更新SDK:
File > Settings > Appearance & Behavior > System Settings > AndroidSDK
别忘了在右下角选中“Show Package Details”复选框,查看所有可用的包。通常,启用Google Play的包甚至默认未被选中。确保选中它们。
2. 不能在GUI中启用Google Play
首先,认为值得一提,关于这个问题有很多讨论和论坛帖子。许多人提出了各种解决问题的方法,但很少有人解决了认为的这个问题的实际根本原因:
在Android Studio和Visual Studio的AVD管理器应用程序中存在错误,这些错误阻止了配置文件被正确创建。
什么?它们都有问题?是的。让解释一下。截至本文撰写之时(2020年4月23日),如果在Android Studio中修改或创建任何AVD,将不会收到启用Google Play商店的选项,即使选择了一个SDK中的Android镜像,该镜像表明它有“Google Play”。
事实上,如果尝试编辑现有的“内置”设备(随Android StudioAVD安装提供的设备),并且保存该修改,它将失去使用Google Play的能力。
Visual Studio产生相同的结果。在Visual Studio AVD的修改窗口中,有两个复选框,一个说“Google APIs”,另一个说“Google Play Store”。这两个复选框应该与该AVD的配置中的设置相关联。不要浪费时间点击它们,它们是无用的复选框,因为它们的值实际上并没有写入AVD的配置文件。可能或可能无法同时选中这两个(说实话,认为这与在%localappdata%\Android\Sdk\tools\lib\devices.xml中找到的AVD的硬件配置文件有关,但不确定如何向该文件添加配置文件,因为找不到有关正确结构和选项的文档)。
简短回答:自己修改配置文件。
长回答:可能已经意识到,由于两个IDE的AVD管理器的错误,需要自己修改配置文件。可能不知道文件在哪里。以下说明将帮助。
首先,停止尝试使用GUI修改AVD,它只会破坏AVD。
导航到以下目录(或保存AVD的地方):
C:\Users\YOUR_USERNAME\.android\avd
如果AVD正在运行,请关闭它。通过模拟器电源按钮完全关闭(就像关闭真实设备一样)。
在这个目录中,将看到所有的AVD列表,每个都有一个目录和文件。在开始捣鼓之前,快速复制想要修改的一个。这可能需要一些时间,一些镜像文件相当大。
接下来,进入想要修改的AVD的目录,找到名为:
“config.ini”
用文本编辑器打开它
在文件中找到以“PlayStore.enabled”开头的行。
确保整行说“PlayStore.enabled = true”
现在,找到以“image.sysdir.1”开头的行。
可能有一个错误的值“system-images\android-29\google_apis\x86”或“system-images\android-29\default\x86”
这应该是模拟器将使用的镜像目录的路径。似乎AVD管理器无法添加一个“playstore”路径。需要确保路径指向一个有效的镜像路径,并且该路径必须是一个启用了Play Store的镜像的路径。截至本文撰写之时,系统上Platform Image Q的路径是:
system-images\android-29\google_apis_playstore\x86
在该文件中使用上述相对路径,但仅供参考,完整路径是:
C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk\system-images\android-29\google_apis_playstore\x86
注意路径中添加的“_playstore”,这是关键,但还没完成。
整行应该看起来像这样:
image.sysdir.1=system-images\android-29\google_apis_playstore\x86_64\
更新文件中指向同一目录的所有路径,以包含目录名称中的“_playstore”部分。
所以AVD在AVD管理器的AVD列表中正确显示,添加或修改以下行项:
tag.display=Google Play
tag.id=google_apis_playstore
保存文件并关闭它。
现在用文本编辑器打开文件“hardware-qemu.ini”。
再次,将找到并修改或添加值“PlayStore.enabled = true”。
接下来,更新SDK镜像的路径,以便它们都指向PlayStore版本:
kernel.path
disk.ramdisk.path
disk.systemPartition.initPath
disk.vendorPartition.initPath
在此文件中使用完整路径,不要使用相对路径。路径通常应该与上面修改config.ini文件时使用的路径匹配,尽管不是相对的。
整行应该看起来像这样:
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
顺便说一句,可能甚至会发现现有的路径有错误,有双反斜杠。这是有缺陷的AVD管理器用来写入它们的。继续修复任何有错误的路径,以便它们指向正确的目录或文件。
保存并关闭文件。
顺便说一下,AVD必须在其目录中有以下三个文件才能实际启动:
config.ini
sdcard.img
userdata.img
如果想完全重置AVD,可以从AVD目录中删除所有其他文件和目录,只留下这三个文件。
如果这样做,只需根据上面的说明修改config.ini文件,然后重新启动AVD,hardware-qemu.ini文件将在AVD启动时正确写入。
exampleINIFiles.zip