【问题标题】:Internet stopped working on Android Emulator (Mac OS)互联网停止在 Android Emulator (Mac OS) 上运行
【发布时间】:2017-11-16 01:24:18
【问题描述】:

我正在使用 Android Studio 2.3(最新)。直到昨天一切都很好并且工作正常,今天模拟器没有连接到数据网络。
到目前为止,我找不到任何解决方案。我的 Mac 在 Mac OS Sierra 上运行,无需代理即可连接到 WiFi。

【问题讨论】:

  • 你试过重启了吗?此外,当您从一个网络切换到另一个网络时,模拟器会失去互联网连接。
  • 是的,重启了很多次,mac和android studio一样。
  • 2021 - Google/Android 无法创建可以连接到互联网的模拟器

标签: android-emulator


【解决方案1】:

在 Mac OS 中转到: 系统偏好设置 -> 网络 -> 选择 Wi-Fi os 左侧面板 -> 右侧面板上的高级 -> DNS -> 添加新的 DNS 服务器;例如 8.8.8.88.8.4.4 (Google Public DNS) 或 1.1.1.11.0.0.1 (Cloudflare and APNIC DNS) 或其他公共 DNS 提供商。然后重新启动模拟器,使更改生效。

2020 年 6 月编辑

另一个选项是在启动 Android 模拟器时传递 dns-server 参数。 根据这个解决方案https://stackoverflow.com/a/51858653/3328566,我更改了模拟器可执行文件名称,并创建了一个bash脚本来加载带有参数-dns-server 8.8.8.8的AVD。

在你的 Android SDK 默认文件夹/Users/[MY_USER_ACCOUNT]/Library/Android/sdk/emulator/emulator

  1. 将二进制文件emulator 重命名为emulator_original
  2. 创建一个名为 emulator 的 bash 脚本,其中包含:

#!/bin/bash /Users/[MY_USER_ACCOUNT]/Library/Android/sdk/emulator/emulator_original -dns-server 8.8.8.8 $@

  1. chmod +x emulator更改脚本权限

现在,您可以从 Android Studio 正常启动 AVD

在这种情况下,您无需在系统偏好设置中设置 DNS 服务器。您仅为模拟器设置 DNS 服务器,避免其他问题

【讨论】:

  • 在此之后我只需要再执行一步 - 重新启动 AVD。
  • 有效,...但是为什么呢?!!
  • 请注意,8.8.8.8 是 Google 的 DNS IP,如果您担心自己的隐私,请在完成后删除此行。
  • 我需要同意@Skoua。将您的 DNS 更改为 Google 的公共 DNS 对您的隐私钱包来说是一个巨大的划痕。现在这已经奏效了,但我们需要一个更好的答案......
  • 我不认为这是一个解决方案;这只是一个黑客。对于许多人来说,更改他们的本地 DNS 设置是完全不可接受的,甚至是不可能的。这可能适用于在家中不关心隐私的开发人员。我建议您使用 Jez 的解决方案。
【解决方案2】:

对我来说,问题似乎源于我公司强制执行的 DNS 设置。

为了能够为我的模拟器获得网络访问权限,我需要使用指定的相同公司 dns-server 启动模拟器。

我使用的是 Mac,所以首先我检查了我的网络设置以查找我的 DNS 设置为:

System Preferences -> Network -> Wi-Fi -> Advanced -> DNS

然后导航到 sdk 模拟器位置(为方便起见):

cd ~/Library/Android/sdk/emulator

然后列出可用的模拟器:

./emulator -list-avds

然后使用 dns 服务器覆盖运行所需的模拟器:

./emulator @<emulator_name> -dns-server <dns.server.ip.address>

如果我可以将此 DNS 设置为供通过 Android Studio 启动的模拟器使用,那就太好了,但希望这些步骤可以帮助处于类似位置的其他人。

【讨论】:

  • 当我运行这个命令行 ./emulator -list-avds 时,我没有加载模拟器
  • 什么是 dns 设置?
  • @IgorGanapolsky 您的 DNS 设置可能是您公司计算机正在使用的设置。如有疑问,请联系您的网络管理员。
  • 如果我误解了您最初的问题@IgorGanapolsky DNS 的意思是“域名服务器”,您的计算机会查找与网站名称对应的 IP。例如,google.com 可能解析为 IP 地址216.58.198.174,这是您的计算机实际用于查找网站的地址。您的 DNS 设置指定您的计算机将用于此服务的服务器。
  • @IgorGanapolsky 打开System Preferences 选择Network 然后Wi-Fi 然后Advanced 然后DNS,您应该会看到一个包含数字序列的窗格,例如8.8.8.8。这是一个 DNS 地址。
【解决方案3】:

我是 Android Studio 的新手,刚刚遇到了这个问题。 sim 卡中的网络工作正常,但由于某种原因停止工作。不喜欢上面的任何解决方案,所以我在 AVD 管理器周围戳了一下,发现了一个可以擦除 sim 卡上数据的选项。

  1. 退出模拟器
  2. 打开 AVD 管理器
  3. 操作 > 打开向下箭头以获得更多选项
  4. 选择擦除数据
  5. 重启sim

【讨论】:

  • 没想到这会起作用,但确实如此,值得在更改系统范围的 DNS 设置之前尝试一下。
  • 这对我不起作用。 AndroidWiFi仍然无法上网
  • 第一次完美运行。使用 Apple Silicon Mac。很高兴看到这么简单的解决方案。
【解决方案4】:

打开 AVD 管理器并点击擦除数据

就是这样,现在互联网可以工作了。这就是我解决问题的方法。

【讨论】:

    【解决方案5】:

    这是 IPv6 名称解析的错误,删除 /etc/resolv.confg 中的任何 IPv6 名称服务器可修复此问题,请参阅 https://issuetracker.google.com/issues/155686508#comment3

    【讨论】:

    • 这是好心的先生!!将 Google 的 DNS 添加到 MacOS 的系统偏好设置中不起作用。擦除 AVD 数据不起作用。这对我来说是解决方案!谢谢!!
    【解决方案6】:

    无法通过调整网络设置找到任何解决方案。因此,通过下载新的系统映像(Android O,API 26),从 Tools -> Android -> AVD Manager 添加了一个新的虚拟设备。现在它正在工作。

    如果您想使用相同的 API 级别,请确保删除现有系统映像并重新下载。

    【讨论】:

      【解决方案7】:

      如果您有 Blue Coat 统一代理,互联网将无法正常工作。请卸载它。

      可以通过以下文件夹卸载它- /图书馆/应用程序支持/bcua

      【讨论】:

        【解决方案8】:

        你可以去:系统偏好设置->网络->Wi-Fi->高级->DNS

        因此,您添加了一个新的 DNS 8.8.8.8。它可能会解决您的问题。

        【讨论】:

          【解决方案9】:

          我尝试清除所有 android studio 文件并重新安装, 从 -dns-server 开始, wifi dns 到 8.8.8.8, 他们都没有为我工作。 我发现它只能在模拟器中使用IP地址。 但这篇文章救了我。 https://www.bswen.com/2021/08/others-how-to-enable-android-emulator-internet-access.html.
          1\关闭你的macos wifi; 2\冷启动模拟器; 3\等待模拟器的wifi连接(连接有限但没关系) 4\打开你的macos wifi; 它现在正在工作。

          【讨论】:

          • 简单有效的答案。谢谢,它有帮助。我仍然想知道为什么会这样。
          • 也适用于我,设置新的 dns 不起作用,但这是有效的
          【解决方案10】:

          我的 Android Studio 有一个可用的更新,我更新了它并且它工作了!

          【讨论】:

            【解决方案11】:

            如果是安卓项目,你可以把baseUrl改成10.0.2.2,注意这只适用于安卓模拟器,不能在手机上运行

            例如,Api 端点现在看起来像这样: val baseUri : String = "http://10.0.2.2/restapi/"

            val loginEndpoint = "${baseUri}login"

            【讨论】:

            • 我想知道这在什么情况下会起作用。网址10.0.2.2 是否替换localhost?无论如何,这不是连接到互联网的答案,而只是连接到您的 api。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-08-04
            • 2023-03-24
            • 2018-07-02
            • 2019-07-06
            • 1970-01-01
            • 2011-11-04
            相关资源
            最近更新 更多