Android模拟器无法访问互联网。

546
我知道之前有类似的问题被问过,但是我的问题是新的,只在安装了Android Studio 2.3后才出现的,这是2017年3月最新的版本。我有几年开发Android应用程序的经验,以前从未遇到过这个问题。升级到Android Studio 2.3版本后,我的模拟器无法访问互联网。我甚至卸载/重新安装了Android Studio 2.3并创建了一个新的模拟器,但仍然出现相同的错误。这不是一个应用程序问题。我甚至无法从Chrome访问互联网,而上周我没有这个问题。我收到的消息说服务器DNS地址找不到 - DNS_PROBE_FINISHED_BAD_CONFIG。在过去的一周中,我电脑上唯一改变的就是新版的Android,可能还有Windows 10的更新。是的,我的电脑可以访问互联网。下面是当我尝试使用Chrome搜索“Google”时模拟器上的图像。emulator with error message

更新:自从上次发布以来,我进行了几个更改,包括模拟器更新、安装Android Studio 3(Canary 5)、删除/重新创建模拟器等。我不确定哪个更改是神奇的,但我的模拟器现在可以正常访问互联网了。 - John Moore
7
我认为这个问题还不错,因为它比引用的那个问题更“通用”,而且提到了Android Studio的升级。截至2018年4月,我刚刚将它升级到3.1.2版本,突然出现了这个问题。 - Shine
103
我不明白为什么我们要把这种问题上花费这么多时间。安卓团队...只需要解决它就行了! - r3dm4n
1
我的解决方案是从模拟器设置中删除保存的网络,然后关闭模拟器,再重新运行它。 - Muhammad Asyraf
4
我删除了模拟器设备并重新启动了一个新的,问题解决了。我在这个问题上挣扎了半天……我真是个傻瓜。安卓团队,搞什么啊,你们应该比这更好吧!!! - KunYu Tsai
显示剩余11条评论
69个回答

4
如果Android浏览器可以访问互联网,您可以通过终端运行模拟器。使用以下命令:
前往SDK路径,然后输入以下命令:

$ /tools/emulator -avd Nexus_5X_API_23 -netdelay none -netspeed full

这将解决您的互联网问题...

3

我只需要用另一个目标API重新创建模拟器就可以解决问题了。


3
也许您在Android Studio中设置了代理,但代理无法工作。请尝试不使用代理。

3
如@osama buzdar所指出,模拟器首先查找的DNS设置可能在/ etc / resolv.conf中指定。 在我的情况下,截至macOS Catalina 10.15.7,该文件中有2个地址:第一个是IPv6,第二个是IPv4,由于某种原因,模拟器可能遇到了IPv6的问题。
然后我编辑了文件(sudo vi /etc/resolv.conf)并将IPv4上移为文件的第一条目录,在IPv6之前。 重新启动模拟器,它就可以工作了。

这个解决方案可以解决问题,直到重新生成resolv.conf文件为止... - Hugo Logmans
添加-dns-server 8.8.8.8或类似的额外参数。例如,在Visual Studio中,您可以为调用AVD提供额外的参数,这将永久解决此问题。 - Hugo Logmans

2

专业技巧:在Linux上使用AVD和dnsmasq

如果你想了解如何从Android Studio中设置Android模拟器网络,请查看设置Android模拟器网络

模拟设备的环回地址是127.0.0.1,而主机环回地址可以从模拟设备的10.0.2.2访问。

在启动时,模拟设备通过从/etc/resolv.conf中选择主机DNS名称服务器来设置其DNS名称服务器。

但问题是,如果你正在使用dnsmasq,则需要在/etc/resolv.conf中设置nameserver 127.0.0.1,这样模拟设备将会命中它自己的环回地址,而不是主机环回地址,因为主机环回地址上运行着一个DNS服务器。

为了解决这个问题,在从CLI运行AVD时添加-dns-server

例如:

  • 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

AVD选择第一个DNS条目。并且不支持IPv6,因此在我的自动生成的resolve.conf中,首先声明了IPV6地址,这导致AVD失败。使用-dns-server选项可以解决此问题。8.8.8.8也是有效的DNS条目(Google)。 - Hugo Logmans

2
我使用Visual Studio 2017,这个简单的几步操作可以解决Android模拟器的网络问题。

在此输入图片描述


最初的回答

2

针对苹果MacBook M1用户

截至2022年2月1日,以下方法有效:

  1. 打开Android模拟器
  2. 进入扩展控制
  3. 然后在代理(选项卡)下找到设置,
  4. 取消勾选使用Android Studio HTTP代理设置
  5. 点击应用
  6. 重新启动 / 冷启动您的模拟器。

这样可以解决模拟器上的互联网连接问题。


2
我在我的 MAC 上遇到了同样的问题。在尝试了一切之后,我最终删除了文件夹/Users/Philippe/.android并创建了一个新的模拟器

2
首先,在Android Studio中打开AVD管理器,然后点击清除模拟器的数据,接着点击立即冷启动。 如果这样还不行,尝试将你的网络DNS地址更改为8.8.8.8(谷歌的DNS)或其他你选择的DNS。

DNS选项对我有用!就像有人能告诉我为什么谷歌一直犯这个错误! - MBH

1
如果您在代理后面,以下内容可能会有用:
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接