我浪费了一整天的时间尝试在 SO 和其他提到的地方浮动的不同解决方案,以在 android 模拟器上启用 wifi,但无济于事。谁能帮我弄清楚如何在我的安卓模拟器上启用互联网?
我有 Nexus 5X API 27,目标是 Android 8.1 (Google Play) 和 Nexus 5 API P,目标是 Android 7.1.1。
我相信应该有一种方法可以在其上启用互联网,否则在模拟器上提供虚拟 wifi 的全部意义似乎都是浪费。
我在 mac OS HS 10.13.4 上直接连接到我的路由器,没有代理。
我什至尝试删除所有 AVD,重新安装它们。我什至尝试使用 Oreo Android 8.1 安装最新的 Pixel 2
似乎没有任何工作。有没有人遇到过这个问题并找到了解决方案?
任何帮助都会有很大帮助
谢谢,维克拉姆
更新:当我通过手机将计算机连接为热点 wifi 时,模拟器通过 wifi 连接互联网,但是当我将计算机连接到家庭路由器时它会失败。
下面列出了适用于 Windows 和 Mac 的解决方案,但类似的解决方案适用于任何操作系统:
在 Windows 上打开网络和共享中心并单击当前连接单击属性双击 Internet 协议版本 4 (TCP/IPv4) 将首选和备用 DNS 服务器设置为(下面的屏幕截图):8.8.8.8 8.8.4.4 在 Mac 上转到设置 > 网络 > 高级... > DNS 删除您那里的所有条目并添加这两个条目(下面的屏幕截图): 8.8.8.8 8.8.4.4 注意:对于 Mac 用户,如果条目字段被禁用并且您无法要对其进行编辑,请单击该窗口底部区域的“锁定”图标并输入密码以进行更改
重新启动模拟器,它应该解决:
截图:
视窗
https://i.stack.imgur.com/JBHPe.png
苹果电脑
https://i.stack.imgur.com/l7iez.png
编辑:这是针对模拟器的 wifi 已将 DNS 更改为某些非工作 DNS 的情况的修复。虽然这在大多数情况下都有效,但可能还有其他原因可能无法从该解决方案中解决。
我使用 Mac OSX 10.13 的解决方案
我读到它是由启用 LAN 卡和 WiFi 引起的,有些方法对我来说似乎很复杂,所以我简单地尝试了这个,它奏效了:
在我的笔记本电脑上禁用了 WiFi。
关闭模拟器。
在模拟器上进行了冷启动(AVD Manager -> on emulator actions -> Cold Boot Now)。
在禁用笔记本电脑 WiFi 的情况下重新启动后,模拟器显示正确的 WiFi 连接(模拟器仍显示 AndroidWifi,但已连接到我的笔记本电脑互联网。WiFi 符号现在如下所示:WiFi 符号已连接)
然后我在笔记本电脑上启用了 WiFi,一切正常。
之前对这个问题的回答似乎在 2021 年不再适用(使用 Android Studio 4.1.2)。问题是模拟器上的 DNS 设置。仅更改本地 PC 上的 DNS 服务器不再有效。您必须更改模拟器中的 DNS 设置。以下步骤适用于运行 Android 11 的模拟器。其他版本类似:
打开模拟器右侧打开的扩展控件对话框。单击对话框菜单上的设置。单击顶部的代理并确保选中使用 Android Studio Http 代理设置。我强调这一点,因为许多以前的解决方案都说取消选中这个。但是,在最新版本上,最好保留此项检查。如果尚未检查,请在继续步骤 2 之前重新启动模拟器 导航到模拟器中的 WiFi 连接设置:主屏幕 -> 向上滑动 -> 设置 -> 网络和 Internet -> WiFi AndroidWifi -> 单击齿轮图标 ->单击屏幕底部附近的高级下拉菜单 -> 向上滑动以查看以查看网络详细信息。它对 DNS 说了什么。如果不是 8.8.8.8,请按照此修复。记下(或记住)网络设置中显示的 IP 地址和网关地址。我们需要将这些 IP 地址填写为静态。单击顶部的铅笔图标以编辑网络详细信息。单击 IP 设置下拉菜单并将其更改为静态。然后输入您在步骤 2 中记下的 IP 地址和网关。确保 DNS 1 为 8.8.8.8,DNS 2 为 8.8.4.4。这些是自动为我填写的。关闭模拟器并使用立即冷启动选项重新启动它。
在我尝试了此页面上的所有其他解决方案和许多其他解决方案失败后,这为我解决了这个问题。我希望这个对你有用。
@TheBaj:我发现了这个问题并修复了它。问题是当您通过路由器连接时,模拟器中的 androidwifi 使用设置并将 DNS 设置为 8.8.8.8 以外的其他内容,即 google DNS(我认为这是 androidwifi 获得互联网的强制性设置使用权)。但是,如果我在网络设置中更改 DNS,则不会下载用于获取您的依赖项的 google-services 插件,尤其是从 jcenter()
下载的依赖项,因此您的同步将失败,最终导致您的构建失败。
所以诀窍是您在默认路由器设置之后在网络设置中配置了您的 google DNS(8.8.8.8) - 这部分负责从 jcenter()
下载依赖项并且同步和构建成功。
现在从终端使用 emulator @Nexus_5X_API_27 -dns-server 8.8.8.8
命令启动您的模拟器,这会强制模拟器使用 8.8.8.8 作为其 DNS,并且模拟器将拥有互联网。
我正在开发一个 react-native 应用程序,所以对我来说 android studio 是不必要的,我已经将我的 bashrc 配置为启动不同的模拟器,如下所示,
function emunex5 {
emulator @Nexus_5X_API_27 -dns-server 8.8.8.8
}
function emunex6 {
emulator @Nexus_6_API_27 -dns-server 8.8.8.8
}
function emupix {
emulator @Pixel_XL_API_27 -dns-server 8.8.8.8
}
因此,我从一个终端启动我选择的模拟器,然后在另一个终端上运行构建,该终端在启动的模拟器上运行我的应用程序,并且我的该死的模拟器具有互联网访问权限。 :)
试试这个,我希望这会有所帮助。
谢谢,维克拉姆
%HOME%\AppData\Local\Android\Sdk\emulator
- 这是我找到它的地方。
在 macOS 上:
在系统偏好设置中打开网络。从左侧选择您当前的网络,然后单击高级...。将配置 IPv6(在 TCP/IP 选项卡下)从自动更改为仅链接本地。重启你的模拟器。
适用于 Windows 的解决方案:
转到您的 Android SDK 位置,例如:C:\Users\shehzad\AppData\Local\Android\Sdk\emulator。在同一位置打开命令提示符。编写此命令:emulator -avd Nexus_4_API_29 -gpu host -dns-server 8.8.8.8。这里 Nexus_4_API_29 将是您的模拟器设备名称(您可以从 Android Studio -> AVD Manager 中找到设备列表)。此命令将运行您指定的设备,并且 WIFI 将连接互联网。
希望这可以帮助。
我遇到了同样的问题,并按照以下步骤解决了它。
脚步:
转到模拟器设置选择代理选项卡然后检查“使用 Android Studio HTTP 代理设置”选项单击应用
https://i.stack.imgur.com/uGAg4.png
在 Mac OSX(对我来说是 Catalina)上,问题是由于模拟器通过查看 /etc/resolv.conf 并选择第一个(在我的例子中是 IPv6 地址)来自动选择名称服务器。来源:https://developer.android.com/studio/run/emulator-networking#dns
只需编辑文件(sudo vi /etc/resolv.conf)并将 IPv4 地址(在我的例子中为 192.168.1.1)移动到 IPv6 地址之前。说真的,就是这样。
我已经在网络适配器 8.8.8.8
和 8.8.4.4
上使用 google dns 解决了
https://i.stack.imgur.com/uK9iZ.png
通过右键单击虚拟设备列表擦除数据和冷启动对我有用..
好吧,我是这样做的:
添加手动代理的步骤:
转到模拟器设置转到代理选项卡设置手动代理配置添加您的主机名和端口号单击应用
参考截图:
https://i.stack.imgur.com/hgS7l.png
希望能帮助到你。
100% 在 Windows 10 上工作
Android AVD 带有在模拟器中配置的 Google DSN。所以我们需要将相同的设置为网络共享以访问相同的内容。
Google 公共 DNS IP 地址 Google 公共 DNS IP 地址 (IPv4) 如下:
8.8.8.8
8.8.4.4
Google 公共 DNS IPv6 地址如下:
2001:4860:4860::8888 2001:4860:4860::8844 您可以将任一地址用作主 DNS 服务器或辅助 DNS 服务器。
这里我展示了设置 v4 IP 步骤
打开网络和共享中心 右键单击当前 Internet 连接 选择属性 双击 Internet 协议版本 4 (TCP/IPv4) 选择使用以下 DNS 服务器地址 设置首选和备用 DNS 服务器 首选 DNS 服务器:8.8.8.8 备用 DNS 服务器: 8.8.4.4 点击 OK 重启 Android AVD
注意:如果启用了 VPN,则需要断开 VPN 连接才能正常工作
https://i.stack.imgur.com/xKm6S.png
我的环境是 Mac 11.3.1 Big Sur 中的 Android Studio 4.2.0
第 0 步。我关闭了所有模拟器,也关闭了 Android Studio。
https://i.stack.imgur.com/K0epC.png
https://i.stack.imgur.com/BUsBT.png
https://i.stack.imgur.com/OgyGw.png
如果 step0 -> step 1 -> step 2 不起作用,您可以像 step 3 一样设置 DNS。然后再次执行 Step0 -> Step1 -> Step2。
它会起作用。
也许这会对某人有所帮助。我尝试了上述所有解决方案。更改 DNS、冷启动等。经过几个小时的反复试验,我去了官方文档,上面说模拟器选择了 DNS 配置。模拟器启动时的主机。我的机器上安装了 VMWare,它安装了一些网络适配器。所以,我只是更改了 DNS 配置。所有适配器(包括 VMWare 适配器),并冷启动我的模拟器。天哪,似乎几个小时都没有消失的问题,刚刚好!
现在,我觉得奇怪的是,我切换回了 DNS 配置。在所有自动的适配器中,再次冷启动我的模拟器。 WiFi 仍然可以正常工作。操作系统:Windows 10。
如果您连接了任何 VPN - 尝试断开它。
对我来说,它是通过 Cisco AnyConnect Secure Mobility Client
的 VPN。一旦我关闭了 Cisco 客户端(它会终止 VPN 连接),Android 模拟器上的 WiFi 就开始工作了。
我希望我能减轻别人的痛苦,我在这里尝试了大家所说的一切,更改了每个网络适配器的 DNS,重新安装了所有东西,SDK,模拟器,甚至 android studio,没有任何效果,如果你发现自己处于同样的位置检查您是否安装了 VMware,如果安装了,请不要打扰 DNS,只需进入控制面板->网络和共享中心->更改适配器设置,然后禁用任何和所有 VMware 网络适配器,然后冷启动,即可解决问题立即,您甚至可以稍后启用它们,它仍然有效
在 Windows 上:
在测试了一些解决方案后,我通过单击 AVD 上的向下箭头找到了我的解决方案,选项“现在冷启动”。启动后,Android 可以访问互联网,所以它对我有用。
什么对我有用:
关闭模拟器电源(使用其电源键)
在另一个模拟器上启动您的应用程序,然后将其关闭。
现在再次在以前的模拟器中启动您的应用程序。
一个简单的冷启动对我有用,无需启动其他模拟器或擦除内存。
只需关闭您的模拟器,然后在播放按钮旁边的下拉菜单中选择“立即冷启动”选项。如果不寻找此处列出的任何更全面的选项,但我建议始终从最简单的解决方案开始。
祝你好运!
Apple M1 问题解决方案:
安装最新的金丝雀版本之一的 Android Studio。使用 MAC ARM 版本(Apple Silicon)。创建新虚拟设备时,请使用 API Level S 和 arm64 虚拟映像。 (可以在其他图片中找到)
这是 android studio 版本列表的链接:https://developer.android.com/studio/archive
(为我工作)
如果 wifi 点发生了变化,只需重新启动模拟器,让模拟器从 dhcp 服务刷新网络设置。
在 Android 模拟器上重置网络设置可解决此问题。
对于新的搜索用户:有时 VPN 是您的解决方案,由于网络问题,有时无法更改网络设置。如果您处于谷歌对这些地区没有响应的 IP 地址中,您的解决方案是使用 vpn。使用适当的 vpn(通过它的 vpn,您可以更新您的 android studio)。当您的 vpn 启动时,您的 avd 设备(当然,您的模拟器的 api 级别很重要,例如我对 api 22 没有任何问题,但对于 api 28 需要使用 vpn !)。这是我对 android 模拟器互联网的经验。
更改模拟器的位置并将其设置为您的当前位置。
步骤: - 单击模拟器选项中的更多 转到位置 搜索您的地址并单击设置位置
单击模拟器选项中的更多
前往位置
搜索您的地址并单击设置位置
我有同样的问题 - 在模拟器中我连接到 wifi/lte 但我无法访问任何网站。
我的解决方案是修复我的家庭 DNS 服务器的 IP:
$ cat /etc/resolv.conf
search home
nameserver 192.168.1.1 #was 192.168.0.1 - it used to work when I was connected to a different router
nameserver 1.1.1.1
nameserver 1.0.0.1
你真的不需要使用 google dns
如果有人快速修复:
第 1 步:转到 AVD 管理器
第 2 步:停止设备
第 3 步:运行 Android Studio 项目
在扩展控制下(可以通过按下底部的更多按钮(3个点...)来启用。
然后在代理选项卡下,选择无代理。
如果可用,也许尝试使用 LAN。这对我来说是一种魅力......
我有一个类似的问题,有点奇怪。模拟器过去可以正常工作,但后来我去了一家咖啡馆并连接到他们的 wifi,然后模拟器 wifi 停止工作。我从 AVD 管理器中擦除了冷启动的数据,然后一切正常,设置没有任何变化。我猜只有冷启动才能在不擦除数据的情况下工作,所以你可以在擦除数据之前尝试一下。
在 Android Studio 4.2 上,我遇到了这个问题,即同时连接了 Emulator Wifi/LTE 但没有互联网。
对我不起作用的解决方案:打开和关闭 Wifi、设置位置/代理、冷启动、擦除数据、VPN 等。其他解决方案都不起作用。
对我有用的解决方案:升级到 Android Studio 4.2.1 并重新启动模拟器。