Vik*_*shi 42 android android-emulator android-wifi android-studio
我浪费了一整天的时间尝试在SO和其他提到的地方漂浮的不同解决方案,以便在Android模拟器上启用wifi,但无济于事.任何人都可以帮我弄清楚如何在我的Android模拟器上启用互联网?
我有Nexus 5X API 27,目标是Android 8.1(Google Play)和Nexus 5 API P,目标是Android 7.1.1.
我相信应该有一种方法来启用互联网,否则在模拟器上提供虚拟wifi的重点似乎是浪费.
我在mac OS HS 10.13.4上直接连接到没有代理的路由器.
我甚至尝试删除所有avds,重新安装它们.我甚至尝试使用Oreo Android 8.1安装最新的Pixel 2
似乎没有什么工作.有人遇到过这个问题并找到了解决方案吗?
任何帮助都会有很大的帮助
谢谢,维克拉姆
更新:当我通过手机将我的电脑连接为热点wifi时,模拟器通过wifi连接互联网,但是当我将计算机连接到家用路由器时它失败了.
Ram*_*asi 82
以下是windows和mac的解决方案,但类似的解决方案适用于任何操作系统:
在Windows上
将首选和备用DNS服务器设置为(下面的屏幕截图):
8.8.8.8
8.8.4.4
Run Code Online (Sandbox Code Playgroud)在Mac上
删除你在那里的任何条目并添加这两个条目(下面的屏幕截图):
8.8.8.8
8.8.4.4
Run Code Online (Sandbox Code Playgroud)重新启动模拟器,它应该解决:
截图:
ide*_*ech 40
这个问题的先前答案似乎在 2021 年不再有效(使用 Android Studio 4.1.2)。问题是模拟器上的 DNS 设置。仅更改本地 PC 上的 DNS 服务器不再有效。您必须在模拟器中更改 DNS 设置。以下步骤适用于运行 Android 11 的模拟器。其他版本将类似:
在我尝试了在此页面和许多其他页面上找到的所有其他解决方案失败后,这为我解决了这个问题。我希望这个对你有用。
Vik*_*shi 27
@TheBaj:我想到了这个问题并修复了它.问题是当你通过路由器连接时,你的模拟器中的androidwifi使用设置并将DNS设置为8.8.8.8以外的其他东西,这是google DNS(我认为这是androidwifi获取互联网的强制性设置访问).但是,如果我在我的网络设置中更改DNS,那么获取依赖项的google-services插件(尤其是从中下载的依赖项)jcenter()将不会被下载,因此您的同步将失败,最终导致您的构建失败.
所以诀窍是你在默认路由器设置之后在你的网络设置中配置了你的谷歌DNS(8.8.8.8) - 这部分负责下载依赖关系,jcenter()同步和构建成功.
现在使用emulator @Nexus_5X_API_27 -dns-server 8.8.8.8来自终端的命令启动您的模拟器,该命令强制模拟器使用8.8.8.8作为其DNS并且模拟器将具有互联网.
我正在研究一个本机应用程序,所以对我来说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
}
Run Code Online (Sandbox Code Playgroud)
所以从一个终端我启动我选择的模拟器,然后在另一个终端上运行构建,该终端在启动的模拟器上运行我的应用程序,我的FREAKING EMULATOR有互联网访问.:)
试试这个,我希望这会有所帮助.
谢谢,维克拉姆
Mil*_*hen 19
我的环境是 Mac 11.3.1 Big Sur 中的 Android Studio 4.2.0
步骤0. 我关闭所有模拟器,并关闭Android Studio。
步骤1.
然后我打开Android Studio。AVD 管理器 -> 立即冷启动

步骤 3.(可选)顺便说一句,我的 mac 网络的 DNS 设置是

如果步骤0 -> 步骤1 -> 步骤2 不起作用,您可以像步骤3 一样设置DNS,然后再次执行步骤0 -> 步骤1 -> 步骤2。
它会起作用的。
Vin*_*Sit 18
在 macOS 上:
She*_*ama 11
Windows 解决方案:
emulator -avd Nexus_4_API_29 -gpu host -dns-server 8.8.8.8。这Nexus_4_API_29将是您的模拟器设备名称(您可以从 Android Studio -> AVD Manager 中找到设备列表)。此命令将运行您指定的设备,WIFI 将连接互联网。希望这可以帮助。
Jua*_*dán 10
我使用Mac OSX 10.13的解决方案
我了解到它是由启用LAN卡和WiFi引起的,并且某些方法对我来说似乎很复杂,所以我只是尝试了一下,并且它起作用了:
在 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 地址之前。说真的,就是这样。
好吧,我是这样做的:
添加手动代理的步骤:
希望能帮助到你。
100% 在 Windows 10 上工作
Android AVD 带有在模拟器内配置的 Google DSN。所以我们需要将相同设置为网络共享以访问相同。
谷歌公共 DNS IP 地址谷歌公共 DNS IP 地址 (IPv4) 如下:
8.8.8.8
8.8.4.4
谷歌公共 DNS IPv6 地址如下:
2001:4860:4860::8888 2001:4860:4860::8844 您可以使用任一地址作为您的主要或次要 DNS 服务器。
这里我展示了设置 v4 IP 的步骤
注意:如果启用了 VPN,那么它将无法工作,需要断开您的 VPN
小智 6
也许这会对某人有所帮助。我尝试了上面所有的解决方案。更改 DNS、冷启动等。经过几个小时的反复试验,我查阅了官方文档,其中说模拟器会获取 DNS 配置。模拟器启动时的主机。我的机器上安装了 VMWare,它安装了一些网络适配器。所以,我只是更改了 DNS 配置。所有适配器(包括 VMWare 适配器),并冷启动我的模拟器。天哪,这个问题似乎几个小时都没有消失,现在就解决了!
现在,我发现奇怪的是,我切换回了 DNS 配置。将所有适配器设置为自动,然后再次冷启动我的模拟器。WiFi 仍然工作得很好。操作系统:Windows 10。
我希望我能帮别人减轻很多痛苦,我尝试了每个人在这里所说的一切,更改了每个网络适配器的DNS,重新安装了所有东西,SDK,模拟器,甚至android studio,没有任何效果,如果你发现自己处于同样的位置检查是否安装了 VMware,如果安装了,请不要理会 DNS,只需进入“控制面板”->“网络和共享中心”->“更改适配器设置”,然后禁用所有 VMware 网络适配器,然后冷启动即可解决问题立即,您甚至可以稍后启用它们,而且它仍然有效
有两种方法可以修复此错误。
如果您连接了任何 VPN - 尝试断开它。
对我来说,它是通过Cisco AnyConnect Secure Mobility Client. 一旦我关闭了 Cisco 客户端(它终止了 VPN 连接),Android 模拟器上的 WiFi 就开始工作了。
| 归档时间: |
|
| 查看次数: |
26809 次 |
| 最近记录: |