如果你遇到了模拟器启动问题,可以尝试第一次尝试“冷启动”模拟器,详见这里。
如果冷启动仍然无法解决问题,请尝试更改网络的DNS地址为8.8.8.8(谷歌的DNS)或您偏好的其他地址:
有关更多信息,请访问:https://developers.google.com/speed/public-dns/docs/using
修改 DNS 后,请关闭模拟器并重新启动它。
在尝试了许多解决方案后,我本来打算删除我的当前AVD并重新创建一个,但是当我点击AVD上的向下箭头时,我注意到了“立即冷启动”。
出于一时兴起,我尝试了这个方法。 哦,看哪,我的模拟器又可以联网了!
如果你是通过命令行启动模拟器,请加上-no-snapshot-load
选项,例如:
%ANDROID_HOME%/emulator/emulator.exe -netdelay none -netspeed full -no-snapshot-load -avd Pixel_2_API_28
或者对于MacOSX:
$ANDROID_HOME/emulator/emulator -netdelay none -netspeed full -no-snapshot-load -avd Pixel_2_API_28
请注意,您可能需要更改
-avd Pixel_2_API_28
部分(使用您自己的虚拟设备名称)。此外,大多数工具使用
ANDROID_HOME
环境变量名称,因此请定义该变量(如果尚未定义),但现在ANDROID_ROOT
是另一个可选项。
好的,对于那些问为什么不只是清除数据并重新启动的人。你每次重新启动电脑都会重新格式化吗? 在模拟器上清除数据就像对手机进行恢复出厂设置或在计算机上重新格式化硬盘并重新安装操作系统一样。 除非数据完全损坏,否则这是不必要的。
当您关闭模拟器并重新启动时,就像将计算机置于休眠或睡眠模式下一样。 内存不会被清除,而是被保存。
进行冷启动等同于重新启动手机或计算机。 它会重置内存并让事物重新加载。 这允许网络仿真以清洁的内存开始并正确连接。
所以,不要清除数据。只需冷启动即可。 如果仍然无法正常工作,则进行清除,但将其保存为最后的手段。
我在一个旧的 Stack Overflow 线程中找到了一个临时解决方案,网址为 Upgraded to SDK 2.3 - now no emulators have connectivity。请注意,该线程讨论的是 Android SDK 2.3,而不是 Android Studio 2.3。问题似乎是模拟器无法找到我当前使用的 DNS,临时解决方法是从命令行启动模拟器并指定 DNS 服务器。当时发生的任何问题现在似乎在最新版本的 Android Studio 中重新出现了。
下面概述的临时解决方案可以解决模拟器访问互联网的问题。但是,它无法解决尝试运行 Android 设备监视器时出现的问题。这样做仍会使模拟器像上面描述的那样离线。
请注意,sdk 中有两个名为 "emulator.exe" 的文件 -- 一个位于 sdk\tools 下,另一个位于 sdk\emulator 下。其中任何一个都可能起作用,但我使用的是 sdk\emulator 下的那个。
第一步是找到 SDK 的位置。在 Windows 上,假设用户名为 "jdoe",默认安装了 Android Studio,则 SDK 最可能在以下位置:
C:\Users\jdoe\AppData\Local\Android\sdk
第二步是确定你想要运行的AVD(模拟器)的名称。使用以下命令:
C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -list-avds
它将显示您的AVD名称。 在我的电脑上,它只显示一个,Nexus_5X_API_25。
要使用指定的DNS服务器从命令行启动模拟器,请使用以下命令:
C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -avd Nexus_5X_API_25 -dns-server 8.8.8.8
在这种情况下,8.8.8.8是Google公共域名服务器。〜/Library/Android/sdk/emulator/emulator -avd Pixel_2_API_28 -dns-server 8.8.8.8
- J. V.[更新 2022] 针对 Mac 用户
非 Apple Silicon 用户
针对 Apple Silicon 用户
按照 @bourdier-jonathan 的建议,在这里可以解决 Silicon 问题: Emulator appearing offline on M1 Mac after the last update of arm64-v8a
通过用已下载的 r02 映像替换 AVD 系统映像来解决问题,因为 r03、r04 和 r05 在 m1 上都无法运行。
8.8.8.8
DNS 服务器是 DNS 服务器列表中的第一个。 - Jonathan Morales Vélez只需打开AVD管理器,清除该模拟器的数据即可。
打开 Android 模拟器并进入扩展控件。然后转到设置 => 代理(Tab),取消选中"使用 Android Studio HTTP 代理设置",并点击"应用"。
提醒: 如果在计算机上打开VPN系统,则Android模拟器的互联网连接无法使用。