繁体   English   中英

Android 模拟器无法访问 inte.net

[英]Android emulator not able to access the internet

我知道以前有人问过类似的问题,但我的问题是安装 Android Studio 2.3 后才出现的,最新版本是 2017 年 3 月。我有几年开发 Android 应用程序的经验,以前从未遇到过这个问题。 升级到Android Studio 2.3版本后,我的模拟器不能上网了。 我什至从头开始卸载/重新安装 Android Studio 2.3 并创建了一个新的模拟器,但我仍然遇到同样的错误。 这不是应用程序问题。 我什至无法从 Chrome 访问 inte.net,上周我没有遇到这个问题。 我收到的消息说找不到服务器 DNS 地址 -- DNS_PROBE_FINISHED_BAD_CONFIG。 上周我的电脑上唯一发生变化的是新版本 Android 以及可能更新到 Windows 10。是的,我的电脑可以访问 inte.net。 下面是当我尝试使用 Chrome 搜索“Google”时我的模拟器的图像。 带有错误消息的模拟器

👉 第一次尝试按照此处的建议“冷启动”模拟器。

👉 如果冷启动不起作用,请尝试将网络的 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 上的向下箭头时,我注意到“现在冷启动”。

AVD 菜单

一时兴起,我试过了。 瞧,我的模拟器又可以上网了!

命令行方法

如果您通过命令启动 Emulator,请传递-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是另一个命名选项。

决定(编辑)

好的,对于那些说为什么不只是擦除数据并重新启动的人。 每次重新启动电脑时都会重新格式化电脑吗? 在模拟器上擦除数据就像对手机进行出厂重置或在 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用户

  1. 系统偏好
  2. 网络
  3. WiFi > 选择高级
  4. 从高级选择 DNS 选项卡
  5. 添加 DNS 服务器 8.8.8.8
  6. 添加 DNS 服务器后必须重新启动模拟器(感谢@kapusch)

对于Apple Silicon用户

根据@bourdier-jonathan 您可以在此处修复硅问题: Emulator 在最后一次更新 a​​rm64-v8a 后在 M1 Mac 上脱机

通过将您下载的 AVD 系统映像替换为 r02 映像。 因为看起来 r03、r04 和 r05 都不适用于 m1

更新我的 WIFI 适配器以解析 8.8.8.8 上的 DNS 为我解决了这个问题。 它开始发生在 Apple 更新弄乱了 DNS 地址之后。

在此处输入图像描述

只需打开AVD 管理器并擦除该模拟器的数据即可。

打开 Android 模拟器并转到Extended Controls 然后转到设置=>代理(Tab),取消选中“使用Android Studio HTTP代理设置”并单击“应用”。

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

在此处输入图像描述

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

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

要禁用适配器:

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

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

提醒:如果您在计算机上打开VPN系统,Android Emulator 互联网连接将无法正常工作

当模拟器冻结并且我不得不终止该进程时,这发生在我身上。 信号图标始终显示小“x”,如屏幕截图所示,并且没有成功连接互联网。

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

在 Android Studio 中:

Tools-> Android -> SDK Manager 取消选中“Android Emulator”并让它卸载然后再次检查并再次安装。

截屏

我也面临同样的问题,但我正在尝试使用各种帖子来解决问题。 今天我发现了这个问题。 您的计算机配置很可能是问题所在,而不是 Android Studio 和 Android 模拟器。

问题来自您的网络设置。 只需将 Primary DNS Server 设置为 8.8.8.8,即可解决问题。

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

转到网络和互联网选项-> 在此处输入图像描述

单击以太网wifi (您已连接)选项-> 在此处输入图像描述

单击更改适配器选项-> 在此处输入图像描述

右键单击您已连接的网络。 在此处输入图像描述

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

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

现在你可以随时打开你的模拟器,你会在安卓模拟器中上网。

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

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

故事的寓意是要非常警惕模拟器的更新

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

我在从家去咖啡馆时打开模拟器后遇到了这个问题。 “现在冷启动”解决了这个问题。

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

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

操作系统WINDOWS 10

刚刚转到 AVD 管理器和冷启动现在为我工作

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

打开和关闭 wifi

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

$ adb kill-server
$ adb start-server

希望能帮助到你。 谢谢

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

请通过以下链接。

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

打开模拟器,点击更多... ,然后点击设置和代理。 从这里,您可以定义自己的 HTTP 代理设置。


通过以下Run > cmd > hostname输入主机名

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

注意:经常擦除数据会清除问题。 请按照所有步骤

如果android浏览器可以访问互联网,您可以通过此命令从终端运行模拟器

然后转到SDK路径

$ /tools/emulator -avd Nexus_5X_API_23 -netdelay none -n​​etspeed full

它解决了您的互联网问题...

我遇到了同样的问题,我通过以下步骤解决了:-

转到模拟器设置,然后转到

setting->Proxy->手动配置或者使用Tick使用Android Studio HTTP代理模拟器。

请投票,如果这对你有用

只是用另一个目标 API 重新创建模拟器对我有用

也许您为 Android Studio 设置了代理,但代理不起作用。 尝试不使用代理。

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

步骤1

在 Android SDK 中找到 Android Studio 正在使用的emulator可执行文件,并将其重命名为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 重启模拟器。

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

专业提示:在 Linux 上使用 AVD 和 dnsmasq

要了解您,请阅读从 Android Studio设置 Android 模拟器网络

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

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

但关键是,如果您使用的是 dnsmasq , you set nameserver 127.0.0.1 in因此模拟设备将在没有运行任何内容的情况下命中它自己的环回,而不是运行 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

我有visual studio 2017,这个简单的几次点击修复了Android模拟器的互联网问题。

在此处输入图像描述

  1. 第一:打开飞行模式。
  2. 第二:连接模拟器wifi。

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

  1. 断开您的 PC 与互联网的连接
  2. 在您仍然断开连接时关闭模拟器
  3. 再次连接到互联网
  4. 最后再次启动你的模拟器

正如@osama buzdar 所指出的, 模拟器首先查看的 DNS 设置可能在 /etc/resolv.conf 中指定 就我而言,从 macOS Catalina 10.15.7 开始,该文件中有 2 个地址:第一个是 IPv6,第二个是 IPv4,由于某种原因,模拟器可能在使用 IPv6 时遇到了问题。

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

苹果 MacBook M1

在 m1 mac 上,没有一个答案对我有用,我什至无法连接到 react-native 开发服务器的本地主机。

对我来说,诀窍是关闭蜂窝数据“T-mobile”,然后它将使用 AndroidWiFi 访问 inte.net,一切正常。

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

我也有这个问题,我通过创建新的 android 模拟器虚拟设备并选择了 Nexus 4 api 27 来解决它。在我创建 Pixel 设备 api 28 之前,即使在重新创建设备后它也无法工作。 因此,我尝试了完全不同的配置,Android Emulator 具有预期的互联网连接。 其他解决方案对我不起作用,但我没有全部尝试。

对我来说,问题是我的电脑连接到 VPN。 一旦我断开连接,它就开始在模拟器中工作。

对于 OSX 上的我来说,这是因为使用了 3rd 方 VPN 解决方案……它安装了某种 AVD 和 Genymotion 无法通过的网络挂钩。 必须卸载它才能正常工作。 在某些网络上运行良好,而在其他网络上运行良好......非常奇怪......

我在 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 问题解决了!

如果您在代理后面,则以下内容可能有用:

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

设置 DNS 8.8.4.4 并运行 emulator -avd react-native-device -dns-server 8.8.4.4

这对我有用

移动数据设置需要打开。 冷启动它没有用,但在我打开移动数据后它工作了

在具有 Jio IP6 配置问题的最新 Mac 上,它会阻止 android 模拟器上的互联网,因此从 Android 虚拟设备管理器模拟器列表操作列下拉列表中选择“立即冷启动”选项修复了问题。在我保持相同的工作后我遇到了这个问题我。

这些答案都不适合我。 我可以通过下载金丝雀版本“android-studio-2021.1.1.8-mac_arm”来让它工作。 之后不需要额外的步骤。

1-设置无代理

在此处输入图像描述

2-无效缓存

在此处输入图像描述

3-删除旧模拟器并添加新模拟器

我的模拟器有同样的问题,做了上面的一切,但没有任何效果。 在我的控制面板 -> 网络和共享中心 -> 本地连接设置中将默认网关从:192.168.1.119 更改为 192.168.1.1 对我有用。 我不太了解这个 IP 地址是如何工作的,但也许它会节省一些人的时间和挫败感。

android emulator V 7.1.1中对我来说同样的网络连接问题,然后我在我的Android Emulator中将Android 版本降低到7.1.1以下,然后它就可以正常工作了。

带有 Android 9+ 的模拟器对我有用,但 Android 7 无法连接到互联网。

我的办公室使用 Little Snitch 应用程序防火墙。 我把它关掉了,Android 7 工作了。 检查防火墙可能是个好主意。

就我而言,它是 Charles 代理应用程序。 即使关闭应用程序模拟器仍然无法访问互联网。 需要停止在查尔斯收听网络。

我知道这是旧的。 但这对我有点帮助。 我在 Xamarin.Forms 应用程序中遇到了同样的问题。 我的模拟器无法连接到公共 api。

我通过在 Android 设备管理器中使用出厂默认设置启动模拟器解决了这个问题。

在此处输入图像描述

我观察到的是,当您在 android 模拟器运行时切换 wifi 连接时。 它无法连接到新的 wifi。

一个简单的解决方案是重启安卓模拟器。

如果您的网络上有 PiHole,请确保您的 Pi 正在工作并且您可以访问 PiHole 的 Web UI。 每次,当我的模拟器突然无法连接互联网时,是因为其中任何一个出现问题。

冷启动选项对我有用

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 客户端。

测试您的设置是否正常工作; 请参阅测试您的新设置。

对于 Apple MacBook M1 用户

截至 2022 年 2 月 1 日工作

  1. 打开安卓模拟器
  2. 转到扩展控件
  3. 然后转到代理下的设置( Tab ),
  4. 取消选中Use Android studio HTTP proxy setting
  5. 点击应用
  6. 重启/冷启动你的模拟器。

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

我不知道这是否可以帮助任何人,对我有用的是将模拟器的android设置上的日期和时间设置为正确的(当前)日期和时间,看起来很奇怪。

解决此问题的最快速、最简单的方法之一是choose a device with API 29 or below ,更高的 API 存在一些问题。 DNS 对我不起作用,所以我尝试降低设备 API 级别,chrome 等开始工作。 然而,我的应用程序能够使用 inte.net,因为我们能够从更高的 API 上的后端获取数据,但在测试其他一些功能时遇到 chrome 问题。

对我来说,我去了模拟器中的连接设置并断开Android WiFi 然后在里面,我按下了Forget Connection 现在再次连接到同一个 WiFi 解决了这个问题。 我认为解决这个问题的最快方法!

在过去的 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,它会工作,它对我有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM