我知道以前也有人问过类似的问题,但是我的问题是在安装了2017年3月最新版本的Android Studio 2.3之后才出现的。我有几年开发Android应用程序的经验,以前从未遇到过这个问题。升级到 Android Studio 2.3 版本后,我的模拟器无法再访问互联网。我什至从头开始卸载/重新安装了 Android Studio 2.3 并创建了一个新的模拟器,但我仍然遇到同样的错误。这不是应用程序问题。我什至无法从 Chrome 访问互联网,上周我没有遇到这个问题。我收到的消息说找不到服务器 DNS 地址 - DNS_PROBE_FINISHED_BAD_CONFIG。上周我的电脑上唯一改变的是新版本的 Android 加上可能更新到 Windows 10。是的,我的电脑可以访问互联网。下面是我尝试使用 Chrome 搜索“Google”时的模拟器图像。
59 回答
将您网络的 DNS 地址更改为 8.8.8.8(Google 的 DNS)或您偏好的其他地址:
macOS:- 打开“系统偏好设置”
- 点击“网络”
- 选择您的计算机连接的网络,然后单击“高级”
- 选择“DNS”,选择“+”按钮,输入“8.8.8.8”(Google 的 DNS),或者如果您更喜欢 OpenDNS,请输入“208.67.222.222”
- 选择“确定”和“应用”
视窗和 Linux:
https://developers.google.com/speed/public-dns/docs/using
之后关闭模拟器并重新启动它。
在尝试了许多这些解决方案之后,我打算删除我当前的 AVD 并重新创建它,但是当我单击 AVD 上的向下箭头时,我注意到“现在冷启动”。
一时兴起,我试过了。瞧,我的模拟器又可以上网了!
编辑:好的,对于那些说为什么不只是擦除数据并重新启动的人。每次重新启动电脑时都会重新格式化电脑吗?在模拟器上擦除数据就像对手机进行出厂重置或在 PC 上重新格式化硬盘并重新安装操作系统一样。除非数据完全损坏,否则这是不必要的。
当您关闭模拟器并重新启动它时,就像将您的 PC 置于休眠或睡眠模式一样。内存没有被擦除,它被保存了。
冷启动与重新启动手机或重新启动 PC 相同。它重置内存并让事情重新加载。这允许网络仿真从干净的内存开始并正确连接。
所以,不要擦除你的数据。只是冷启动。如果它仍然不起作用,请擦拭,但将其保存为最后的手段。
我在 Upgraded to SDK 2.3 的旧 Stack Overflow 线程上找到了一个临时解决方案- 现在没有仿真器具有连接性。请注意,此线程讨论的是 Android SDK 2.3,而不是 Android Studio 2.3。问题似乎是模拟器找不到我的电脑当前使用的DNS,临时的解决方法是从命令行启动模拟器并指定DNS服务器。那时发生的任何问题都必须在最新版本的 Android Studio 中重新出现。
下面概述的临时解决方案解决了模拟器访问互联网的问题。但是,它不能解决尝试运行 Android Device Monitor 时出现的问题。这样做仍然会使模拟器如上所述脱机。
请注意,sdk 中有两个名为“emulator.exe”的文件——一个在 sdk\tools 下,另一个在 sdk\emulator 下。两者都可能在下面工作,但我使用 sdk\emulator 下的那个。
第一步是找到SDK所在的位置。假设用户名为“jdoe”并且在 Windows 上默认安装了 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是一个谷歌公共域名服务器。
如果您创建适当的环境变量并编辑您的 PATH 环境变量,则可以缩短上述命令,但我建议您在这样做时要小心。
[更新 2022]适用于 Mac 用户
对于非Apple Silicon用户
- 系统偏好
- 网络
- WiFi > 选择高级
- 从高级选择 DNS 选项卡
- 添加 DNS 服务器 8.8.8.8
- 添加 DNS 服务器后必须重新启动模拟器(感谢@kapusch)
对于Apple Silicon用户
根据@bourdier-jonathan 您可以在此处修复硅问题: Emulator 在最后一次更新 arm64-v8a 后在 M1 Mac 上脱机
通过将您下载的 AVD 系统映像替换为 r02 映像。因为看起来 r03、r04 和 r05 都不适用于 m1
只需打开AVD 管理器并擦除该模拟器的数据即可。
打开 Android 模拟器并转到Extended Controls。然后转到设置=>代理(Tab),取消选中“使用Android Studio HTTP代理设置”并单击“应用”。
升级后我遇到了同样的问题。在模拟器中打开 Chrome 浏览器后,无法再访问 google.com。
我在 SO 上发现了一个帖子,表明问题出在模拟器试图使用断开连接的网络适配器。对我来说,当我连接到 LAN 时,问题就出现了。禁用无线 LAN 适配器解决了该问题。
要禁用适配器:
- 导航到网络连接
- 找到适配器
- 右键单击并选择禁用
提醒:如果您在计算机上打开VPN系统,Android Emulator 互联网连接将无法正常工作。
我也面临同样的问题,但我正在尝试使用各种帖子来解决问题。今天我发现了这个问题。您的计算机配置很可能是问题所在,而不是 Android Studio 和 Android 模拟器。
问题来自您的网络设置。只需将 Primary DNS Server 设置为 8.8.8.8,即可解决问题。
上次模拟器自我更新时,这对我来说是个问题,然后禁用其他网络适配器修复了它。现在它又出现了,但唯一启用的适配器是一个 wifi 适配器,所以我没有什么可以禁用的。
只有在我通过提示将模拟器工具更新到 26.1.1 后,该问题才再次出现。我通过 SDK 工具更新选项卡卸载并重新安装了模拟器,幸运的是,现在再次安装时唯一的选择是安装 26.0.3(这似乎工作正常)。
故事的寓意是要非常警惕模拟器的更新。
对我来说,这个问题是在我把笔记本电脑带回家而不重新启动模拟器时引起的。根据我的阅读,当模拟器启动时,它会读取您 PC 的 DNS 设置并使用它们。当我在我的家庭网络上时,我的工作 DNS 设置失败。
是的。只需重新启动模拟器就解决了我的问题。
我在从家去咖啡馆时打开模拟器后遇到了这个问题。“现在冷启动”解决了这个问题。
刚刚转到 AVD 管理器和冷启动现在为我工作
关闭模拟器并重新打开对我有用
操作系统 WINDOWS 10
经过 10 天的麻烦,我刚刚删除了所有内容C:\Android\.android\
并删除了所有创建的 AVD。现在互联网似乎工作正常。
我在 android studio 3.1 上,它发生了。通过重启adb服务器解决了
$ adb kill-server
$ adb start-server
希望能帮助到你。谢谢
请通过以下链接。
https://developer.android.com/studio/run/emulator-networking
打开模拟器,点击更多...,然后点击设置和代理。从这里,您可以定义自己的 HTTP 代理设置。
通过以下 Run > cmd > hostname输入主机名
最后,通过在 chrome 或 google 中浏览来检查模拟器内部的互联网访问。
注意:经常擦除数据会清除问题。请按照所有步骤
我也遇到了问题,通过在 Android Studio 设置中禁用代理,并使用“Cold Boot Now”运行模拟器,问题得到解决。
如果android浏览器可以访问互联网,您可以通过此命令从终端运行模拟器
然后转到SDK路径
$ /tools/emulator -avd Nexus_5X_API_23 -netdelay none -netspeed full
它解决了您的互联网问题...
我遇到了同样的问题,我通过以下步骤解决了:-
转到模拟器设置,然后转到
setting->Proxy->手动配置或者使用Tick使用Android Studio HTTP代理模拟器。
请投票,如果这对你有用
也许您为 Android Studio 设置了代理,但代理不起作用。尝试不使用代理。
只是用另一个目标 API 重新创建模拟器对我有用
专业提示:在 Linux 上使用 AVD 和 dnsmasq
要了解您,请阅读从 Android Studio设置 Android 模拟器网络。
模拟设备的环回是127.0.0.1
,并且主机环回可以从模拟设备访问10.0.2.2
。
在启动时,模拟设备通过从/etc/resolv.conf
.
但关键是,如果您使用的是 dnsmasq, you set
名称服务器 127.0.0.1 in
/etc/resolv.conf`,那么模拟设备将在没有运行任何内容的情况下访问它自己的环回,而不是运行 DNS 服务器的主机环回。
要解决这个问题,-dns-server
请在从 CLI 运行 AVD 时添加。
例如:
- Cloudflare DNS:
~/Android/Sdk/emulator/emulator -avd Nexus_9_API_23 -dns-server 1.1.1.1
- 主机的 dnsmasq:
~/Android/Sdk/emulator/emulator -avd Nexus_9_API_23 -dns-server 1.0.2.2
- 第一:打开飞行模式。
- 第二:连接模拟器wifi。
尝试这些步骤一次,它们对我有用:
- 断开您的 PC 与互联网的连接
- 在您仍然断开连接时关闭模拟器
- 再次连接到互联网
- 最后再次启动你的模拟器
我在我的 MAC 上遇到了同样的问题。在尝试了一切之后,我终于删除了文件夹/Users/Philippe/.android 并创建了一个新的 emulator。
不为整机使用自定义 DNS 的 MacOS 解决方案
步骤1
在 Android SDK 中找到emulator
正在使用的可执行 Android Studio 并将其重命名为emulator-original
.
我的位置/usr/local/share/android-sdk/emulator/emulator
,但它可能会因个人设置而异。
第2步
添加一个新文件emulator
来代替包含以下命令的原始文件(或使用您选择的 DNS 服务器)。
#!/bin/bash
$0-original "$@" -dns-server 8.8.8.8
第 3 步
使新emulator
文件可执行。
chmod +x emulator
第4步
使用 Android Studio 重启模拟器。
在具有 Jio IP6 配置问题的最新 Mac 上,它会阻止 android 模拟器上的互联网,因此从 Android 虚拟设备管理器模拟器列表操作列下拉列表中选择“立即冷启动”选项修复了问题。在我保持相同的工作后我遇到了这个问题我。
移动数据设置需要打开。冷启动它没有用,但在我打开移动数据后它工作了
我也有这个问题,我通过创建新的 android 模拟器虚拟设备并选择了 Nexus 4 api 27 来解决它。在我创建 Pixel 设备 api 28 之前,即使在重新创建设备后它也无法工作。因此,我尝试了完全不同的配置,Android Emulator 具有预期的互联网连接。其他解决方案对我不起作用,但我没有全部尝试。
对我来说,问题是我的电脑连接到 VPN。一旦我断开连接,它就开始在模拟器中工作。
如果您在代理后面,则以下内容可能有用:
adb shell settings put global global_http_proxy_port YOUR_PROXY_PORT
adb shell settings put global global_http_proxy_host YOUR_PROXY_IP
reboot
这些答案都不适合我。我可以通过下载金丝雀版本“android-studio-2021.1.1.8-mac_arm”来让它工作。之后不需要额外的步骤。
对于 OSX 上的我来说,这是因为使用了 3rd 方 VPN 解决方案……它安装了某种 AVD 和 Genymotion 无法通过的网络挂钩。必须卸载它才能正常工作。在某些网络上运行良好,而在其他网络上运行良好......非常奇怪......
正如@osama buzdar 所指出的,模拟器首先查看的 DNS 设置可能在 /etc/resolv.conf 中指定。就我而言,从 macOS Catalina 10.15.7 开始,该文件中有两个地址:第一个是 IPv6,第二个是 IPv4,由于某种原因,模拟器可能在 IPv6 上遇到问题。
然后我编辑了文件 ( sudo vi /etc/resolv.conf
) 并将 IPv4 上移到文件的第一个条目,在 IPv6 之前。重新启动模拟器,它工作。
设置 DNS 8.8.4.4 并运行 emulator -avd react-native-device -dns-server 8.8.4.4
这对我有用
我在 Windows 10 上遇到了同样的问题。我刚刚去了Network & internet settings> Change adapter options> right-click on Wi-Fi and chose properties> Chose Internet protocol version 4 in the list and clicked properties> Turned on the "Use the following DNS server addresses" and filled the first part with "8.8.8.8" address
. 问题解决了!
冷启动选项对我有用
在android emulator V 7.1.1中对我来说同样的网络连接问题,然后我在我的Android Emulator中将Android 版本降低到7.1.1以下,然后它就可以正常工作了。
我观察到的是,当您在 android 模拟器运行时切换 wifi 连接时。它无法连接到新的 wifi。
一个简单的解决方案是重启安卓模拟器。
就我而言,它是 Charles 代理应用程序。即使关闭应用程序模拟器仍然无法访问互联网。需要停止在查尔斯收听网络。
我的模拟器有同样的问题,做了上面的一切,但没有任何效果。在我的控制面板 -> 网络和共享中心 -> 本地连接设置中将默认网关从:192.168.1.119 更改为 192.168.1.1 对我有用。我不太了解这个 IP 地址是如何工作的,但也许它会节省一些人的时间和挫败感。
Windows DNS 设置在所选网络连接的 TCP/IP 属性窗口中指定。
示例:在 Windows 10 上更改 DNS 服务器设置
转到控制面板。单击网络和 Internet > 网络和共享中心 > 更改适配器设置。选择您要为其配置 Google 公共 DNS 的连接。例如:
要更改以太网连接的设置,请右键单击以太网接口并选择属性。要更改无线连接的设置,请右键单击 Wi-Fi 接口并选择属性。如果系统提示您输入管理员密码或确认,请键入密码或提供确认。
选择网络选项卡。在此连接使用以下项目下,选择 Internet 协议版本 4 (TCP/IPv4) 或 Internet 协议版本 6 (TCP/IPv6),然后单击属性。
单击高级并选择 DNS 选项卡。如果那里列出了任何 DNS 服务器 IP 地址,请将它们写下来以备将来参考,然后从该窗口中删除它们。
单击确定。
选择使用以下 DNS 服务器地址。如果首选 DNS 服务器或备用 DNS 服务器中列出了任何 IP 地址,请将它们写下来以备将来参考。
将这些地址替换为 Google DNS 服务器的 IP 地址:
对于 IPv4:8.8.8.8 和/或 8.8.4.4。对于 IPv6:2001:4860:4860::8888 和/或 2001:4860:4860::8844。仅限 IPv6:您可以使用 Google Public DNS64 代替上一点中的 IPv6 地址。测试您的设置是否正常工作;请参阅测试您的新设置。
对要更改的其他网络连接重复此过程。
macOS DNS 设置在“网络”窗口中指定。
示例:在 macOS 10.15 上更改 DNS 服务器设置
单击 Apple 菜单 > 系统偏好设置 > 网络。如果窗口左下角的锁定图标已锁定,请单击该图标进行更改,并在提示进行身份验证时输入您的密码。选择您要为其配置 Google 公共 DNS 的连接。例如:要更改 Wi-Fi 连接的设置,请选择 Wi-Fi,然后单击高级。要更改以太网连接的设置,请选择内置以太网,然后单击高级。选择 DNS 选项卡。单击 + 将任何列出的地址替换为或添加列表顶部的 Google IP 地址:对于 IPv4:8.8.8.8 和/或 8.8.4.4。对于 IPv6:2001:4860:4860::8888 和/或 2001:4860:4860::8844。仅限 IPv6:您可以使用 Google Public DNS64 代替上一点中的 IPv6 地址。单击确定 > 应用。测试您的设置是否正常工作;请参阅测试您的新设置。对要更改的其他网络连接重复此过程。
Linux 在大多数现代 Linux 发行版中,DNS 设置是通过网络管理器配置的。
示例:在 Ubuntu 上更改 DNS 服务器设置
单击系统 > 首选项 > 网络连接。选择您要为其配置 Google 公共 DNS 的连接。例如:要更改以太网连接的设置,请选择有线选项卡,然后在列表中选择您的网络接口。它通常称为 eth0。要更改无线连接的设置,请选择无线选项卡,然后选择适当的无线网络。单击编辑,然后在出现的窗口中选择 IPv4 设置或 IPv6 设置选项卡。如果选择的方法是自动 (DHCP),请打开下拉列表并选择仅自动 (DHCP) 地址。如果方法设置为其他值,请不要更改它。在 DNS 服务器字段中,输入 Google 公共 DNS IP 地址,以逗号分隔:对于 IPv4:8.8.8.8 和/或 8.8.4.4。对于 IPv6:2001:4860:4860::8888 和/或 2001:4860:4860::8844。仅限 IPv6:您可以使用 Google Public DNS64 代替上一点中的 IPv6 地址。单击应用以保存更改。如果系统提示您输入密码或确认,请键入密码或提供确认。测试您的设置是否正常工作;请参阅测试您的新设置。对要更改的其他网络连接重复此过程。如果您的发行版不使用网络管理器,则您的 DNS 设置在 /etc/resolv.conf 中指定。
示例:更改 Debian 服务器上的 DNS 服务器设置 编辑 /etc/resolv.conf:
sudo vi /etc/resolv.conf
如果出现任何名称服务器行,请记下 IP 地址以供将来参考。
将名称服务器行替换为或添加以下行:
对于 IPv4:
nameserver 8.8.8.8
nameserver 8.8.4.4
对于 IPv6:
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
对于仅限 IPv6,您可以使用 Google Public DNS64 代替上述 IPv6 地址。
保存并退出。
重新启动您正在使用的任何 Internet 客户端。
测试您的设置是否正常工作;请参阅测试您的新设置。
带有 Android 9+ 的模拟器对我有用,但 Android 7 无法连接到互联网。
我的办公室使用 Little Snitch 应用程序防火墙。我把它关掉了,Android 7 工作了。检查防火墙可能是个好主意。
对于 Apple MacBook M1 用户
截至 2022 年 2 月 1 日工作
- 打开安卓模拟器
- 转到扩展控件。
- 然后转到代理下的设置( Tab ),
- 取消选中
Use Android studio HTTP proxy setting
- 单击应用
- 重启/冷启动你的模拟器。
这应该可以解决您的模拟器上的互联网连接问题。
如果您的网络上有 PiHole,请确保您的 Pi 正在工作并且您可以访问 PiHole 的 Web UI。每次,当我的模拟器突然无法连接互联网时,是因为其中任何一个出现问题。
在过去的 8 小时里,我一直遇到这个问题,想办法解决它。这发生在我家停电之后。我的模拟器不再连接到我的电脑的互联网。我在这里尝试了所有解决方案。将 DNS 更改为 8.8.8.8 有效,但我不想通过谷歌路由我的所有流量。
最终起作用的是。我知道这很疯狂,但拔掉了我的 wifi 路由器/调制解调器。快速拔出并重新插入即可解决此问题。我在这个 SO 问题和其他 5 个问题上尝试了一切。我什至重新下载了 Android Studio 和模拟器。都没有奏效。尝试拔下路由器/调制解调器。
最后,我不得不删除.android
文件夹并创建新文件夹。文件似乎已损坏
我在 8 或 9 天后解决了这个问题。只需卸载 android 模拟器 SDK(从 SDK 管理器),然后重新安装 android 模拟器 SDK。在 8 或 9 天内,我尝试了:
1.new windows setup
2.uninstall and install android studio
3.change windows sharing setting
4.change DNS server addresses
5.delete and create some AVDs
6.delete .android folder and create new one etc.
转到您的适配器设置并将 dns 更改为谷歌的 8.8.8.8,它会工作,它对我有用