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

Android Studio - Android Emulator Wifi Connected with No Internet

我浪费了一整天的时间尝试在 SO 和其他提到的地方浮动的不同解决方案,以在 android 模拟器上启用 wifi,但无济于事。 谁能帮我弄清楚如何在我的 android 模拟器上启用互联网?

我有 Nexus 5X API 27,目标是 Android 8.1(Google 播放) 和 Nexus 5 API P,目标是 Android 7.1.1.

我相信应该有一种方法可以在它上面启用互联网,否则在模拟器上提供虚拟 wifi 的全部意义似乎都是浪费。

我在 mac OS HS 10.13.4 直接连接到我的路由器,没有代理。

我什至尝试删除所有 AVD,然后重新安装它们。我什至尝试安装最新的 Pixel 2 with Oreo Android 8.1

似乎没有任何效果。有人遇到过这个问题并找到了解决方案吗?

任何帮助都会有很大的帮助

谢谢, 维克拉姆

更新:当我通过 phone 连接我的电脑作为热点 wifi 时,模拟器通过 wifi 上网,但是当我将我的电脑连接到我的家庭路由器时它失败了。

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

因此,我从一个终端启动了我选择的模拟器,然后 运行 在另一个终端上构建,运行 在启动的模拟器上安装了我的应用程序,我的该死的模拟器可以访问互联网。 :)

尝试一下,希望对您有所帮助。

谢谢, 维克拉姆

我已经在网络适配器 8.8.8.88.8.4.4

上使用 google dns 解决了

以下是 Windows 和 Mac 的解决方案,但类似的解决方案适用于任何 OS:

  1. 开Windows

    • 打开网络和共享中心并点击当前连接
    • 单击属性
    • 双击 Internet 协议版本 4 (TCP/IPv4)
    • 将首选和备用 DNS 服务器设置为(下面的屏幕截图):

      8.8.8.8
      8.8.4.4
      
  2. 开Mac

    • 转到设置 > 网络 > 高级... > DNS
    • 删除那里的任何条目并添加这两个条目(下面的屏幕截图):

      8.8.8.8
      8.8.4.4
      

      注意:对于 Mac 用户,如果条目字段被禁用并且您无法编辑它,请单击 'Lock' 图标在那个 window 的底部区域并输入能够进行更改的密码

重启模拟器,应该可以解决:

截图:

  1. Windows

  1. Mac


编辑:这是针对模拟器的 wifi 将 DNS 更改为某些无法正常工作的 DNS 的情况的修复。虽然这在大多数情况下都有效时间,可能还有其他原因无法通过此解决方案解决。

嗯,我是这样做的:

添加手动代理的步骤:

  1. 转到模拟器设置
  2. 转到代理选项卡
  3. 设置手动代理配置
  4. 添加您的主机名 & 端口号
  5. 点击应用

参考屏幕截图:

希望对您有所帮助。

我的解决方案使用 Mac OSX 10.13

听说是网卡和wifi开启导致的,有些方法我觉得比较复杂,就试了下,成功了:

  • 我的笔记本电脑上的 WiFi 已禁用。
  • 关闭模拟器。
  • 在模拟器上进行了冷启动(AVD 管理器 -> 在模拟器操作上 -> 现在冷启动)。
  • 在禁用笔记本电脑 WiFi 的情况下重新启动后,模拟器显示正确的 WiFi 连接(模拟器仍显示 AndroidWifi,但已连接到我的笔记本电脑互联网。WiFi 符号现在看起来像这样:WiFi symbol connected)
  • 然后我在笔记本电脑上启用了 WiFi,一切正常。

上 Windows :

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

对我有用的:

  • 关闭模拟器(使用电源键)
  • 在另一个模拟器上启动您的应用,然后将其关闭。
  • 现在再次在之前的模拟器中启动您的应用程序。

如果 wifi 点已更改,只需重新启动模拟器,以便模拟器从 dhcp 服务刷新网络设置。

在 Android 模拟器上重置网络设置修复了这个问题。

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

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

只需关闭您的模拟器,然后 select 播放按钮旁边下拉菜单中的 "Cold Boot Now" 选项。如果不寻找此处列出的任何更全面的选项,但我建议始终从最简单的解决方案开始。

祝你好运!

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

对于新的搜索器用户: 有时 VPN 是您的解决方案 由于网络问题,无法始终更改网络设置。 如果您的 IP 地址 google 对这些区域没有响应,您的解决方案是使用 vpn.Use 一个合适的 vpn(一个可以通过它更新您的 android 工作室的 vpn)。当你的 vpn 打开时启动你的 avd 设备(当然 api 你的模拟器级别很重要例如我对 api 22 没有任何问题但是 api 28 需要使用 vpn ! ).这是我对 android 模拟器互联网的体验。

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

  • 步骤:-

    1. 点击模拟器选项中的更多
    2. 前往地点
    3. 搜索您的地址并点击设置位置

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

步骤:

  1. 转到模拟器设置
  2. Select 代理选项卡
  3. 然后勾选"Use Android Studio HTTP proxy settings"选项
  4. 点击应用

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

现在,我觉得奇怪的是,我切换回了 DNS 配置。将所有适配器设置为自动,然后再次冷启动我的模拟器。 WiFi 仍然工作正常。 OS: Windows 10.

100% 正在 Windows 10

Android AVD 在模拟器中配置了 Google DSN。 所以需要设置same为网络共享才能访问same

Google Public DNS IP 地址 Google Public DNS IP地址(IPv4)如下:

8.8.8.8

8.8.4.4

GooglePublicDNS IPv6地址如下:

2001:4860:4860::8888 2001:4860:4860::8844 您可以使用任一地址作为您的主要或辅助 DNS 服务器。

More Info

这里我展示设置v4 IP的步骤

  1. 打开网络和共享中心
  2. 右键单击当前的互联网连接
  3. Select 属性
  4. 双击 Internet 协议版本 4 (TCP/IPv4)
  5. Select使用以下DNS服务器地址
  6. 设置首选和备用 DNS 服务器
  7. 首选 DNS 服务器:8.8.8.8
  8. 备用 DNS 服务器:8.8.4.4
  9. 点击确定
  10. 重启AndroidAVD

注意:如果启用了 VPN,则它将无法工作需要断开您的 VPN

Windows的解决方案:

  1. 转到您的 Android SDK 位置,例如:C:\Users\shehzad\AppData\Local\Android\Sdk\emulator.
  2. 在同一位置打开命令提示符。写入此命令:emulator -avd Nexus_4_API_29 -gpu host -dns-server 8.8.8.8。这里 Nexus_4_API_29 将是您的模拟器设备名称(您可以从 Android Studio -> AVD Manager 的设备列表中找到它)。此命令将 运行 您指定的设备和 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 地址之前。说真的,就是这样。

在 macOS 上:

  1. 系统偏好设置中打开网络
  2. Select 左侧的当前网络然后单击 高级....
  3. 配置 IPv6(在 TCP/IP 选项卡下)从 自动 更改为Link-local 仅.
  4. 重启模拟器。

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

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

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

我希望我能为别人省去很多痛苦,我试过了所有的方法大家在这里说的,更改了每个网络适配器的 DNS,重新安装了所有东西,SDK,模拟器,即使是 android 工作室,也没有任何效果,如果您发现自己处于相同位置,请检查是否安装了 VMware,如果安装了,请不要理会 DNS,只需进入 控制面板->网络,然后共享中心->更改适配器设置,禁用所有 VMware 网络适配器,然后冷启动,立即解决问题,您甚至可以稍后启用它们,它仍然有效

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

如果有人快速修复:

第 1 步:转到 AVD 管理器

第 2 步:停止设备

第 3 步:运行Android工作室项目

似乎以前对此问题的回答在 2021 年不再有效(使用 Android Studio 4.1.2)。问题是模拟器上的 DNS 设置。仅更改本地 PC 上的 DNS 服务器不再有效。您必须更改模拟器中的 DNS 设置。以下步骤针对模拟器 运行 Android 11.其他版本类似:

  1. 打开模拟器右侧打开的扩展控件对话框。单击对话框菜单上的 设置。单击顶部的 Proxy 并确保 Use Android Studio Http 代理设置 IS检查。我强调这一点是因为许多以前的解决方案都说要取消选中它。但是,在最新版本中,最好保持选中状态。如果尚未选中,请在继续第 2 步之前重启模拟器
  2. 导航到模拟器中的 WiFi 连接设置:主页 屏幕 -> 向上滑动 -> 设置 -> 网络和互联网 -> WiFi AndroidWifi -> 单击齿轮图标 -> 单击底部附近的 高级 下拉菜单屏幕 -> 向上滑动查看 网络详情.
  3. 它对 DNS 说了什么。如果不是 8.8.8.8,请按照此进行修复。记下(或记住)IP地址网关 地址显示在网络设置中。我们需要将这些 IP 地址填写为静态。
  4. 单击顶部的铅笔图标编辑网络详细信息。单击 IP 设置 下拉菜单并将其更改为 静态。然后输入你写的IP地址网关在步骤 2 中向下。确保 DNS 1 是 8.8.8.8 和 DNS 2 是 8.8.4.4。这些是自动为我填写的。
  5. 关闭模拟器并使用立即冷启动选项重新启动它。

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

在 Android Studio 4.2 上,我遇到了两个模拟器 Wifi/LTE 已连接但没有互联网的问题。

对我不起作用的解决方案:打开和关闭 Wifi、设置 location/proxy、冷启动、擦除数据、VPN 等。None 其他解决方案有效。

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

我的环境是 Android Studio 4.2.0 in Mac 11.3.1 Big Sur

第 0 步 我关闭了所有模拟器,也关闭了 Android Studio。

步骤 1. 然后我打开 Android Studio。 AVD 管理器 -> 立即冷启动

步骤 2. 在模拟器上关闭 Wifi。 然后LTE可以工作

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

如果step0 -> step 1 -> step 2不行,你可以像step 3一样设置DNS,然后再走Step0 -> Step1 -> Step2

它会起作用。

这可能无法解决每个人的问题,但我断开了 wifi 并使用了以太网连接。这解决了我的问题。

Apple M1问题的解决方案:

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

这里是 link android 工作室发行列表: https://developer.android.com/studio/archive

(为我工作)

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

然后在“代理”选项卡下,Select没有代理。

None 对我有用,然后我在 windows 上打开了“移动热点”。它存在于“飞行模式”旁边的任务栏上。一切开始工作。

我在WINDOWS 11 系统中尝试了以上所有方法,但没有结果。 最后我 运行 检查磁盘 - chkdsk c: /f /r - PC 重启后我重新创建了设备。终于成功了。

尝试禁用防病毒软件,然后重新启动对我的情况有帮助的模拟器。