I know that similar questions have been asked before, but my problem is new only after installing Android Studio 2.3, the latest version in March 2017. I have several years experience developing Android applications, and I have never encountered this problem before. After upgrading to version 2.3 of Android Studio, my emulator is no longer able to access the internet. I even uninstalled/reinstalled Android Studio 2.3 from scratch and created a new emulator, and I am still getting the same error. This is not an app problem. I can't even access the internet from Chrome, and I wasn't having this problem last week. The message that I get says that the server DNS address could not be found -- DNS_PROBE_FINISHED_BAD_CONFIG. The only thing that has changed on my computer in the last week is the new version of Android plus possibly updates to Windows 10. And yes, my computer has access to the internet. Below is an image of my emulator when I try to use Chrome to search for "Google".


当前回答

在过去的8个小时里,我一直在想办法解决这个问题。事情发生在我家停电之后。我的模拟器将不再连接到我的电脑的互联网。我试了所有的解。将DNS更改为8.8.8.8有效,但我不想将所有流量路由到谷歌。

最终奏效的是。我知道这很疯狂,但是拔掉我的wifi路由器/调制解调器。一个快速拔插修复了这个问题。在这个SO问题和其他5个问题上,我用尽了一切办法。我甚至重新下载了Android Studio和模拟器。这些都没用。试着拔掉你的路由器/调制解调器。

其他回答

正如@osama buzdar所指出的,模拟器首先查看的DNS设置可能在/etc/resolv.conf中指定。在我的情况下,macOS Catalina 10.15.7,该文件中有2个地址:第一个是IPv6,第二个是IPv4,由于某种原因,模拟器可能在IPv6上有问题。

然后我编辑文件(sudo vi /etc/resolv.conf),并将IPv4移到文件的第一个条目,在IPv6之前。重新启动模拟器,它工作了。

在8.8.8.8更新我的WIFI适配器以解析DNS为我解决了这个问题。这是在苹果的一次更新搞乱了DNS地址之后发生的。

我在升级到SDK 2.3的旧Stack Overflow线程上找到了一个临时解决方案-现在没有模拟器具有连接性。注意,本文讨论的是Android SDK 2.3,而不是Android Studio 2.3。问题似乎是模拟器无法找到我的计算机当前正在使用的DNS,临时的解决方法是从命令行启动模拟器并指定DNS服务器。无论当时发生了什么问题,一定会在最新版本的Android Studio中重新出现。

下面概述的临时解决方案修复了模拟器访问internet的问题。但是,它并没有修复试图运行Android设备监视器时发生的问题。这样做仍然会使模拟器脱机,如上所述。

注意,在sdk中有两个名为“模拟器.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环境变量,则可以缩短上面的命令,但我建议在这样做时要谨慎。

我也有一个问题,通过在Android Studio设置中禁用代理,并使用“Cold Boot Now”运行模拟器,问题得到了解决。

首先尝试“冷启动”模拟器,建议在这里。 如果冷启动不起作用,请尝试将网络的DNS地址更改为8.8.8.8(谷歌的DNS)或其他您喜欢的DNS:

MacOSX:

打开“系统首选项” 点击“网络” 选择你的电脑所连接的网络,然后点击“高级” 选择“DNS”,选择“+”按钮,输入“8.8.8.8”(谷歌的DNS),或者如果你喜欢OpenDNS,“208.67.222.222” 选择“确定”和“应用”

Windows和Linux:

https://developers.google.com/speed/public-dns/docs/using


之后,关闭模拟器并重新启动它。