我浪费了一整天的时间尝试在 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 上网,但是当我将我的电脑连接到我的家庭路由器时它失败了。
@TheBaj:我发现了这个问题并修复了它。问题是当您通过路由器连接时,模拟器中的 androidwifi 使用设置并将 DNS 设置为 8.8.8.8 以外的其他内容,即 google DNS(我认为这是 androidwifi 获得互联网的强制性设置使用权)。但是,如果我在网络设置中更改 DNS,则不会下载获取您的依赖项的 google-services 插件,尤其是从中下载的依赖项jcenter(),因此您的同步将失败,最终导致您的构建失败。
jcenter()
所以诀窍是你在你的默认路由器设置之后在你的网络设置中配置了你的谷歌 DNS(8.8.8.8)——这部分负责下载依赖项,jcenter()同步和构建成功。
现在使用emulator @Nexus_5X_API_27 -dns-server 8.8.8.8来自终端的命令启动您的模拟器,这会强制模拟器使用 8.8.8.8 作为其 DNS,并且模拟器将拥有互联网。
emulator @Nexus_5X_API_27 -dns-server 8.8.8.8
我正在开发一个 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 }
因此,我从一个终端启动我选择的模拟器,然后在另一个终端上运行构建,该终端在启动的模拟器上运行我的应用程序,并且我的该死的模拟器具有互联网访问权限。:)
试试这个,我希望这会有所帮助。