ChatGPT解决这个技术问题 Extra ChatGPT

Android Studio - 没有互联网连接的 Android 模拟器 Wifi

我浪费了一整天的时间尝试在 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 连接互联网,但是当我将计算机连接到家庭路由器时它会失败。

它不是已经启用了吗?
我有同样的问题。它可以通过我的手机热点工作,但不能通过我的路由器。你有什么样的路由器?以前我有一个 AVM 路由器时一切都可以正常工作,但现在我有一个 Telekom Speedport 路由器,它不再工作了。
@TheBaj:这种路由器可能不是这里的问题,也可能是,但我不知道。试试下面对我有用的解决方案。
@VikramMahishi 只需更新您的 android sdk 模拟器。它对我有用。

R
Raman Sahasi

下面列出了适用于 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 的情况的修复。虽然这在大多数情况下都有效,但可能还有其他原因可能无法从该解决方案中解决。


这和 AVD 的冷启动修复了它
实际上,输入任何有效的公共 DNS 服务器地址都可以,无需专门使用 Google DNS。默认情况下,它通常是设置为 DNS 的路由器地址(或无,在大多数系统上回退到您的路由器)。然后,您的路由器将根据其配置找出正确的 DNS。但是,这不适用于模拟器,因为模拟器无法直接连接到您的路由器或将其用作我想的 DNS。因此需要一个静态的公共DNS IP。
是的!必须关闭模拟器。感谢您的解决方案
对我有用,谢谢^^
谢谢,工作就像一个魅力。
D
Daniel Berryman

我使用 Mac OSX 10.13 的解决方案

我读到它是由启用 LAN 卡和 WiFi 引起的,有些方法对我来说似乎很复杂,所以我简单地尝试了这个,它奏效了:

在我的笔记本电脑上禁用了 WiFi。

关闭模拟器。

在模拟器上进行了冷启动(AVD Manager -> on emulator actions -> Cold Boot Now)。

在禁用笔记本电脑 WiFi 的情况下重新启动后,模拟器显示正确的 WiFi 连接(模拟器仍显示 AndroidWifi,但已连接到我的笔记本电脑互联网。WiFi 符号现在如下所示:WiFi 符号已连接)

然后我在笔记本电脑上启用了 WiFi,一切正常。


这很有效,我在“冷启动”之前做了一个“擦除数据”,并且必须在模拟器中配置 WiFi,在主屏幕上向下滑动时会出现通知。
为我工作!我刚刚在禁用 wifi 的情况下进行了冷启动,它工作得很好。
这是最好的答案。
惊人!!!谢谢!!!但对我来说 - 我也必须在模拟器上禁用和启用 Wi-fi。
这比在您的计算机上修改全局 DNS 设置要好得多。
i
ideaztech

之前对这个问题的回答似乎在 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。这些是自动为我填写的。关闭模拟器并使用立即冷启动选项重新启动它。

在我尝试了此页面上的所有其他解决方案和许多其他解决方案失败后,这为我解决了这个问题。我希望这个对你有用。


谢谢,它奏效了。这应该是现在的正确答案。
扩展控件在哪里?
没关系,我应该取消选中“在工具窗口中运行”
我已经尝试了上述所有解决方案,但没有奏效,这是唯一完美运作的解决方案。干杯
在 Android 模拟器 31.1.4 和 Android Studio 北极狐上工作 | 2020.3.1 补丁 4
V
Vikram Mahishi

@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
   }

因此,我从一个终端启动我选择的模拟器,然后在另一个终端上运行构建,该终端在启动的模拟器上运行我的应用程序,并且我的该死的模拟器具有互联网访问权限。 :)

试试这个,我希望这会有所帮助。

谢谢,维克拉姆


'emulator' 不是内部或外部命令、可运行程序或批处理文件。
@Bhupesh 见 %HOME%\AppData\Local\Android\Sdk\emulator - 这是我找到它的地方。
V
Vincent Sit

在 macOS 上:

在系统偏好设置中打开网络。从左侧选择您当前的网络,然后单击高级...。将配置 IPv6(在 TCP/IP 选项卡下)从自动更改为仅链接本地。重启你的模拟器。


如果这不会杀死主机mac上的IPv6 :(
S
Shehzad Osama

适用于 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 将连接互联网。

希望这可以帮助。


是的,这只对我有用。早些时候它显示已连接,但没有互联网。实施您的解决方案后,这开始工作。
@ashishdhiman2007 很高兴听到您的问题使用我的解决方案解决了 :)
最好和最简单的答案,也是唯一对我有用的答案。
@curiouscoder 听起来不错:)
P
Praneeth

我遇到了同样的问题,并按照以下步骤解决了它。

脚步:

转到模拟器设置选择代理选项卡然后检查“使用 Android Studio HTTP 代理设置”选项单击应用

https://i.stack.imgur.com/uGAg4.png


默认情况下未设置。谢谢
D
Demetrios Christopher

在 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 地址之前。说真的,就是这样。


谢谢,这个对我有用。我正在使用 macOS Catalina 10.15
我不得不重新启动模拟器,它立即工作......只是因为我现在有 IPV6 :(
R
Raman Sahasi

我已经在网络适配器 8.8.8.88.8.4.4 上使用 google dns 解决了

https://i.stack.imgur.com/uK9iZ.png


希望这在某处被报告为错误,因为我也花了一些时间。
i
indrakula

通过右键单击虚拟设备列表擦除数据和冷启动对我有用..


H
Hiren Patel

好吧,我是这样做的:

添加手动代理的步骤:

转到模拟器设置转到代理选项卡设置手动代理配置添加您的主机名和端口号单击应用

参考截图:

https://i.stack.imgur.com/hgS7l.png

希望能帮助到你。


你如何找到你的主机名?
V
Vinayak

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 服务器。

More Info

这里我展示了设置 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


可悲的是,我们在 WFH 时需要 VPN。不敢相信谷歌已经离开这个问题很多年了。
M
Milo Chen

我的环境是 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。

它会起作用。


S
Shesha Vishnu Prasad

也许这会对某人有所帮助。我尝试了上述所有解决方案。更改 DNS、冷启动等。经过几个小时的反复试验,我去了官方文档,上面说模拟器选择了 DNS 配置。模拟器启动时的主机。我的机器上安装了 VMWare,它安装了一些网络适配器。所以,我只是更改了 DNS 配置。所有适配器(包括 VMWare 适配器),并冷启动我的模拟器。天哪,似乎几个小时都没有消失的问题,刚刚好!

现在,我觉得奇怪的是,我切换回了 DNS 配置。在所有自动的适配器中,再次冷启动我的模拟器。 WiFi 仍然可以正常工作。操作系统:Windows 10。


我只需要冷启动模拟器
A
Adomas

如果您连接了任何 VPN - 尝试断开它。

对我来说,它是通过 Cisco AnyConnect Secure Mobility Client 的 VPN。一旦我关闭了 Cisco 客户端(它会终止 VPN 连接),Android 模拟器上的 WiFi 就开始工作了。


我也有这个VPN。在我的情况下,我首先断开 VPN,然后重新启动模拟器(“立即冷启动”)。然后模拟器连接到互联网。之后再次连接到 VPN,模拟器继续工作。
它还取决于 VPN URL。在“Cisco AnyConnect 安全移动客户端”上工作的模拟器可能会也可能不会使用不同的 VPN URL 连接到 Internet。
@CoolMind 有用吗?我面临同样的问题,但你提到的方法对我不起作用:-(
@RakeshL,我有来自两家公司的 2 个不同的 URL。首先连接到他们的资源和其他 URL,但模拟器没有连接。其次连接到他们的资源(Git)和其他,但模拟器连接到任何 URL。奇怪的。如果您尝试在连接到 VPN 之前启动模拟器,它会起作用吗?
@CoolMind 在连接到 VPN 之前,互联网已连接。但是没有 VPN ,它就会断开连接。
i
iamnik

我希望我能减轻别人的痛苦,我在这里尝试了大家所说的一切,更改了每个网络适配器的 DNS,重新安装了所有东西,SDK,模拟器,甚至 android studio,没有任何效果,如果你发现自己处于同样的位置检查您是否安装了 VMware,如果安装了,请不要打扰 DNS,只需进入控制面板->网络和共享中心->更改适配器设置,然后禁用任何和所有 VMware 网络适配器,然后冷启动,即可解决问题立即,您甚至可以稍后启用它们,它仍然有效


H
Hamid Shoja

在 Windows 上:

在测试了一些解决方案后,我通过单击 AVD 上的向下箭头找到了我的解决方案,选项“现在冷启动”。启动后,Android 可以访问互联网,所以它对我有用。


M
M. Usman Khan

什么对我有用:

关闭模拟器电源(使用其电源键)

在另一个模拟器上启动您的应用程序,然后将其关闭。

现在再次在以前的模拟器中启动您的应用程序。


E
Eduardo A del Corral Lira

一个简单的冷启动对我有用,无需启动其他模拟器或擦除内存。

只需关闭您的模拟器,然后在播放按钮旁边的下拉菜单中选择“立即冷启动”选项。如果不寻找此处列出的任何更全面的选项,但我建议始终从最简单的解决方案开始。

祝你好运!


l
luvisoniasty

Apple M1 问题解决方案:

安装最新的金丝雀版本之一的 Android Studio。使用 MAC ARM 版本(Apple Silicon)。创建新虚拟设备时,请使用 API Level S 和 arm64 虚拟映像。 (可以在其他图片中找到)

这是 android studio 版本列表的链接:https://developer.android.com/studio/archive

(为我工作)


M
MiguelSlv

如果 wifi 点发生了变化,只需重新启动模拟器,让模拟器从 dhcp 服务刷新网络设置。


M
MachineBreaker

在 Android 模拟器上重置网络设置可解决此问题。


m
maniaq

对于新的搜索用户:有时 VPN 是您的解决方案,由于网络问题,有时无法更改网络设置。如果您处于谷歌对这些地区没有响应的 IP 地址中,您的解决方案是使用 vpn。使用适当的 vpn(通过它的 vpn,您可以更新您的 android studio)。当您的 vpn 启动时,您的 avd 设备(当然,您的模拟器的 api 级别很重要,例如我对 api 22 没有任何问题,但对于 api 28 需要使用 vpn !)。这是我对 android 模拟器互联网的经验。


G
Gagan Raghunath

更改模拟器的位置并将其设置为您的当前位置。

步骤: - 单击模拟器选项中的更多 转到位置 搜索您的地址并单击设置位置

单击模拟器选项中的更多

前往位置

搜索您的地址并单击设置位置


e
eeqk

我有同样的问题 - 在模拟器中我连接到 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


F
Faisal Shaikh

如果有人快速修复:

第 1 步:转到 AVD 管理器

第 2 步:停止设备

第 3 步:运行 Android Studio 项目


n
naheed.shamim

在扩展控制下(可以通过按下底部的更多按钮(3个点...)来启用。

然后在代理选项卡下,选择无代理。


S
Senthil kumar Moorthy

如果可用,也许尝试使用 LAN。这对我来说是一种魅力......


T
Tysseer

我有一个类似的问题,有点奇怪。模拟器过去可以正常工作,但后来我去了一家咖啡馆并连接到他们的 wifi,然后模拟器 wifi 停止工作。我从 AVD 管理器中擦除了冷启动的数据,然后一切正常,设置没有任何变化。我猜只有冷启动才能在不擦除数据的情况下工作,所以你可以在擦除数据之前尝试一下。


b
bboyairwreck

在 Android Studio 4.2 上,我遇到了这个问题,即同时连接了 Emulator Wifi/LTE 但没有互联网。

对我不起作用的解决方案:打开和关闭 Wifi、设置位置/代理、冷启动、擦除数据、VPN 等。其他解决方案都不起作用。

对我有用的解决方案:升级到 Android Studio 4.2.1 并重新启动模拟器。