Android模拟器无法访问互联网

Joh*_*ore 193 android emulation android-studio-3.0

我知道之前已经提出了类似的问题,但是我的问题是在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"时的模拟器图片. 带有错误消息的模拟器

Ana*_*ula 253

对我来说,我只是将我的网络的DNS地址更改为8.8.8.8并且工作:

如何在MacOSX上执行此操作:

  • 打开"系统偏好设置"
  • 点击"网络"
  • 选择计算机所连接的网络,然后单击"高级"
  • 选择"DNS",选择"+"按钮,输入"8.8.8.8"
  • 选择"确定"和"应用"


如何在Windows和Linux上执行此操作:

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


之后关闭模拟器并再次启动它.

  • 将您所有主机系统的DNS流量路由到Google,这是一个答案-.- (7认同)
  • 如果您不希望DNS流量通过Google,请改用OpenDNS设置。208.67.222.222和208.67.220.220 (6认同)
  • 我做了同样的事,但后来不得不重新启动模拟器让它工作,感谢提示! (4认同)
  • 我花了 2 个小时尝试调试为什么我的模拟器无法与 Firebase 通信,并意识到这是这个问题。开发经验万岁。抓住 Android 团队! (3认同)
  • 您也可以代替“强制”整个计算机使用新的 DNS 服务器(然后默认情况下让您的模拟器继承这些更改)只需更改模拟器的 DNS 设置......有很多方法可以做到. 有关此处提供的各种选项的更多详细信息:/sf/ask/142797511/ (2认同)
  • 一般来说,问题在于 DNS 设置部分无效。将它们重置为有效的值,它就会工作,不必是 8.8.8.8。我的 Mac 设置了 3 个 DNS 服务器,其中前 2 个无效。由于第三个没问题,它仍然适用于其他事情,但我猜测模拟器只采用了前两个(通常只有主要和次要),或者对于这种错误配置来说不那么强大。 (2认同)

Tim*_*ers 114

在尝试了许多这些解决方案之后,我只是删除了我当前的AVD并重新制作它,但当我点击AVD上的向下箭头时,我注意到"现在冷启动".

AVD菜单

我突发奇想,试过了.瞧,我的模拟器再次有互联网连接!

  • 从有线切换到wifi后,这为我修好了 (6认同)
  • 也适用于我,面临在不同网络适配器之间切换的相同问题.问题似乎是模拟器仍以某种方式连接到先前的连接配置,因此当模拟器以Cold Boot Now启动时,网络配置将重新启动,一切都将重新开始.感谢分享 ;)!! (3认同)
  • 工作正常!但为什么? (3认同)
  • 每次重启后都会擦手机吗?这就是模拟器上的冷启动,冷重启。这与关闭手机然后重新打开是一样的。冷启动后无需擦除模拟器中的数据,除非仍然存在问题。 (2认同)
  • 这对我有用..我尝试了不同的代理,尝试重新启动,创建了不同的AVD..不知道为什么这有效..但是有效..! (2认同)

Joh*_*ore 110

我在升级到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
Run Code Online (Sandbox Code Playgroud)

第二步是确定要运行的AVD(仿真器)的名称.命令

C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -list-avds
Run Code Online (Sandbox Code Playgroud)

将显示您的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
Run Code Online (Sandbox Code Playgroud)

在这种情况下,8.8.8.8是Google公共域名服务器.

如果您创建适当的环境变量并编辑PATH环境变量,则可以缩短上述命令,但我建议您这样做时要小心.

  • 这完全有效,但令人难以置信的是这仍然是Android Studio 3.0(模拟器27.1.12)的问题.可能与禁用无线系统的有线和无线网络适配器有关? (2认同)
  • 谢谢!Mac 操作系统:`~/Library/Android/sdk/emulator/emulator -avd Pixel_2_API_28 -dns-server 8.8.8.8` (2认同)

Bas*_*ano 76

[更新 2021]适用于 Mac 用户

  1. 系统偏好设置
  2. 网络
  3. WiFi > 选择高级
  4. 从高级选择 DNS 选项卡
  5. 添加 DNS 服务器 8.8.8.8

  • 很高兴知道添加 DNS 服务器后必须重新启动模拟器 (8认同)
  • 截至 2021 年 8 月 24 日并使用 20201-3-1 版本,此解决方案对我不起作用。 (3认同)
  • 不在 AS Archtic Fox 工作,还有其他解决方案吗? (3认同)
  • 此解决方案不适用于带有 Android Studio Arctic Fox 的 Apple 芯片 | 2020.3.1 macOS 11.4 (2认同)

Joa*_*zzi 48

更新我的WIFI适配器以解析8.8.8.8上的DNS解决了我的问题.它发生在苹果更新后,它搞砸了DNS地址.

在此输入图像描述

  • Ana Paula建议,不要忘记在进行此更改后重新启动模拟器. (11认同)

bmu*_*mul 23

升级后我遇到了同样的问题.在模拟器中打开Chrome浏览器后,无法再访问google.com.

在SO上发现了一个帖子,表明问题在于模拟器试图使用断开的网络适配器.对我来说,当我连接到局域网时,问题就出现了.禁用无线LAN适配器可解决此问题.

要禁用适配器:

  1. 导航到网络连接
  2. 找到适配器
  3. 右键单击并选择禁用

  • 谢谢你的提示.我开始怀疑这样的事情因为我注意到通过有线LAN适配器的连接也解决了这个问题.它也应该可以通过改变两个适配器的优先级来解决这个问题,但无论哪种方式似乎是一个大的修复.为什么Google无法简单地修复模拟器以使用我的计算机正在使用的连接.正如我所说,在升级到Android Studio 2.3之前,这不是问题.现在我将坚持使用指定DNS服务器的其他解决方案. (2认同)

Cyb*_*ber 23

macOS:长话短说.. 确保您的 DNS 设置排8.8.8.8在第一位,擦除您的数据并进行冷启动。

在此处输入图片说明


小智 20

只需打开AVD管理器并擦除该模拟器的数据就可以了.

  • 它一定是缓存了我的旧 wifi 连接,因为我搬到了另一个 wifi 位置并且这个问题开始发生。我擦拭了 AVD 并重新启动,它在新位置连接了 wifi。 (3认同)

小智 20

提醒:Android模拟器没有网络连接,没有工作,如果你把一个在VPN您计算机上的系统。

  • 我遇到了这个问题,它有助于在没有 VPN 连接的情况下启动模拟器,并且只有在启动后,才能连接到您选择的 VPN (2认同)

Dee*_*k N 16

我在 Windows 中为这个问题找到了一个简单而永久的解决方案。

转到网络和互联网选项->在此处输入图片说明

单击以太网wifi(您已连接)选项 -> 在此处输入图片说明

单击更改适配器选项-> 在此处输入图片说明

右键单击您已连接的网络。 在此处输入图片说明

将打开一个对话框,只需单击Internet 协议版本 (TCP/IPv4)选项。 在此处输入图片说明

将打开另一个对话框,忽略第一组关于 IP 地址的设置(保持原样)并单击使用以下 DNS 服务器地址的单选按钮并在首选 DNS 服务器中输入 8.8.8.8 和 8.8。 4.4 在备用 DNS 服务器中: 在此处输入图片说明

现在您可以随时打开您的模拟器,您将在 android 模拟器中获得互联网。

  • 其他解决方案都不适合我,但这个解决方案有效!提一下:我使用的是 LAN 电缆,因此我对此设置进行了更改,而不是 Wifi 连接。 (2认同)

小智 15

打开Android模拟器并转到扩展控件.然后转到setting => proxy(Tab)并取消选中"使用Android studuio HTTP代理设置".

  • 像魅力一样工作,但必须重新启动模拟器才能接收设置。 (2认同)

小智 13

我也面临同样的问题,但我试图用各种帖子来解决问题.今天我发现了这个问题.您的计算机配置很可能是问题,而不是Android Studio和Android Emulator.

问题来自您的网络设置.只需将主DNS服务器设置为8.8.8.8,即可解决问题.

  • 这个答案及其结论是完全错误的。 (2认同)

pat*_*ckf 11

当模拟器冻结并且我不得不杀死进程时,这发生在我身上.信号图标始终显示屏幕截图中的小"x",并且没有互联网连接成功.

唯一有帮助的是卸载并重新安装模拟器(不是AVD图像)

在Android Studio中:

工具 - > Android - > SDK管理器取消选中"Android Emulator"并让它卸载然后再次检查并再次安装.

截图

  • 这是唯一对我有用的解决方案(在 Mac 上) (4认同)
  • 有完全相同的问题,执行此操作后问题仍未解决。但是,重新启动整个计算机后,Internet现在可以在模拟器上运行了。 (2认同)

Bla*_*o73 11

我已经解决了从AVD Manager擦除数据的问题

  • 这个对我有用。我的情况是我使用带API 22的仿真器。在“擦除数据”和“立即冷启动”之后,互联网连接工作正常,但我必须重新安装该应用程序。 (2认同)

Deˣ*_*Deˣ 9

对于一些印度 ISP和其他提供商,路由存在一些问题IPv6,导致我们的应用程序无法连接到互联网或后端 API 服务器的问题。

要解决此问题,我们可以手动将IPv4地址分配给模拟器,从而解决此问题。


  1. 首先,让我们记下IP动态分配给模拟器的地址。

    您可以通过转到模拟器的Settings -> Network & Internet -> Internet Android Wifi -> Android Wifi来查看这一点。
    记下 IPv4 地址、网关和子网掩码。

动态IP

  1. 现在单击右上角的编辑图标。单击高级选项。选择IP静态设置。输入IP您在上一步中记下的地址。并在 DNS1 中使用8.8.8.8. 单击“保存”按钮。现在你的互联网应该可以工作了。

静态IP分配


Dan*_*son 7

这对我来说是一个问题,上次模拟器自我更新,然后禁用其他网络适配器修复它.现在它再次出现,但唯一启用的适配器是单个wifi,所以我没有什么可以禁用.

在我通过提示将模拟器工具更新到26.1.1后,问题才重新出现.我通过SDK Tools更新选项卡卸载并重新安装了模拟器,幸好现在再次安装的唯一选择是安装26.0.3(这似乎工作正常).

故事的道德是要非常警惕模拟器的更新.


Div*_*ash 7

我在从家到咖啡馆的过程中保持模拟器打开后遇到了这个问题。“Cold Boot Now”解决了这个问题。


Sco*_*rth 7

苹果MacBook M1

在 m1 mac 上,所有答案都不适合我,我什至无法连接到反应本机开发服务器的本地主机。

对我来说,诀窍是关闭蜂窝数据“T-mobile”,然后它将使用 AndroidWiFi 进行互联网连接,一切正常。

这是我的工作设置的屏幕截图: 安卓网络截图


IAM*_*STR 6

关闭模拟器并重新打开对我有用

操作系统 WINDOWS 10

  • 这对我有用。我尝试过重新启动虚拟电话,但这还不够。允许正在运行的模拟器进入休眠状态可能会触发此问题。谢谢。 (2认同)

小智 6

刚刚转到 AVD 管理器和冷启动现在对我有用


Wil*_*lis 6

我可以在关闭并打开 android 配置上的 wifi 后使其工作

打开和关闭 wifi


小智 5

经过 10 天的麻烦,我刚刚删除了所有内容C:\Android\.android\并删除了所有创建的 AVD。现在互联网似乎工作正常。


smi*_*reg 5

对我来说,问题是当我将笔记本电脑带回家而不重新启动模拟器时引起的。根据我的阅读,当模拟器启动时,它将读取您的PC的DNS设置并使用它们。当我在家庭网络中时,我的工作DNS设置失败。
是的。只是重新启动模拟器解决了我的问题。


sur*_*rga 5

我在 android studio 3.1 上,它发生了。通过重新启动 adb 服务器解决它

$ adb kill-server
$ adb start-server
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。谢谢


Fat*_*Man 5

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


Goo*_*tan 5

请通过以下链接。

https://developer.android.com/studio/run/emulator-networking

Emulator 打开,单击 More ...,然后单击 Settings and Proxy。从这里,您可以定义自己的 HTTP 代理设置。


按照运行 > cmd > 主机名输入主机

最后,通过浏览 chrome 或 google 来检查模拟器内的互联网访问。

注意:经常擦除数据可以解决问题。请按照所有步骤


Ben*_*ing 5

适用于不为整机使用自定义 DNS 的 MacOS 的解决方案

步骤1

找到emulatorAndroid SDK 中使用的可执行文件 Android Studio 并将其重命名为emulator-original.

我的位置已找到/usr/local/share/android-sdk/emulator/emulator,但可能会根据个人设置而有所不同。

第2步

添加一个新文件,emulator在包含以下命令的原始文件位置调用(或使用您选择的 DNS 服务器)。

#!/bin/bash
$0-original "$@" -dns-server 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

步骤3

使新emulator文件可执行。

chmod +x emulator
Run Code Online (Sandbox Code Playgroud)

步骤4

使用 Android Studio 重新启动模拟器。


小智 5

尝试一次这些步骤,它们对我有用:

  1. 断开您的电脑与互联网的连接
  2. 当您仍处于断开连接时关闭模拟器
  3. 再次连接到互联网
  4. 最后再次启动你的模拟器