Android Studio-未连接互联网的Android Emulator Wifi


90

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

我有Nexus 5X API 27,目标是Android 8.1(Google Play),而Nexus 5 API P,目标是Android 7.1.1。

我认为应该有一种方法可以在其上启用Internet,否则在模拟器上提供虚拟wifi的整个点似乎是浪费的。

我在没有代理的情况下直接连接到路由器的mac OS HS 10.13.4上。

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

似乎没有任何作用。有没有人遇到这个问题并找到解决方案?

任何帮助都会有很大帮助

谢谢,维克拉姆

更新:当我通过手机将计算机连接为热点wifi时,模拟器通过wifi进行了互联网连接,但是当我将计算机连接到家用路由器时,模拟器却失败了。


它是否已经启用?

我有同样的问题。它可以通过我的电话热点运行,但不能通过我的路由器运行。您拥有哪种路由器?在使用AVM路由器之前,一切都可以正常工作,但现在有了Telekom Speedport路由器,它将不再工作。
TheBaj

1
@TheBaj:路由器的类型可能不是这里的问题,或者可能是问题,但我不知道。尝试以下对我有用的解决方案。
Vikram Mahishi

1
@VikramMahishi只需更新您的Android SDK模拟器即可。它为我工作。
Zala Janaksinh,

Answers:


174

下面列出的是适用于Windows和Mac的解决方案,但是类似的解决方案也可以在任何操作系统上使用:

  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用户,如果输入字段被禁用并且您无法对其进行编辑,请单击该窗口底部的“锁定”图标,然后输入密码以进行更改

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

屏幕截图:

  1. 视窗

Android模拟器未连接到Windows上的Internet解决方案

  1. 苹果电脑

Android模拟器未连接到Mac上的Internet解决方案


编辑:这是当模拟器的wifi将DNS更改为某些不起作用的DNS时的解决方案。尽管这在大多数情况下都可行,但可能还有其他原因可能无法从该解决方案中解决。


6
这个问题让我感到非常困惑。这样可以完美解决。荣誉!
维杰·库马尔·坎塔

1
谢谢。永远不会自己弄清楚这一点!
pkozlowski18年

在android studio上使用android 8 Oreo模拟器(AVD)遇到此问题。cli标志和系统范围的dns更改都将其修复。
Thom

1
谢谢!在此错误中苦苦挣扎超过3天
RL Shyam

2
谢谢 !!!!它对我有用8.8.8.8 8.8.4.4
kallayya Hiremath

92

我使用Mac OSX 10.13的解决方案

我了解到它是由启用LAN卡和WiFi引起的,并且某些方法对我来说似乎很复杂,所以我只是尝试了一下,并且它起作用:

  • 我的笔记本电脑上已禁用WiFi。
  • 关闭模拟器。
  • 是否在模拟器上进行了冷启动(AVD Manager->在模拟器操作上->立即启动冷启动)。
  • 在禁用笔记本电脑WiFi的情况下重新启动后,模拟器显示了正确的WiFi连接(模拟器仍显示AndroidWifi,但已连接到我的笔记本电脑互联网。现在,WiFi符号如下所示:WiFi符号已连接
  • 然后,我在笔记本电脑上启用了WiFi,一切正常。

这行得通,我在“冷启动”之前进行了“擦除数据”操作,并且必须在模拟器中配置WiFi,在主屏幕上向下滑动时会有通知。
曼努埃尔

2
为我工作!我只是在禁用wifi的情况下进行了冷启动,效果很好。
哈森

为我工作。谢谢。
Michael Angelo Reyes

像魅力一样工作!谢谢:)
SARATH SASI

这是最好的答案。
艾哈迈德·莫斯塔法

40

@TheBaj:我发现了这个问题并修复了它。问题是当您通过路由器连接时,模拟器中的androidwifi使用设置并将DNS设置为8.8.8.8以外的其他值,这是google DNS(我想这是androidwifi获取互联网的一种强制性设置访问)。但是,如果我在网络设置中更改了DNS,那么jcenter()将不会下载获取您的依赖项(尤其是要从中进行下载的依赖项)的google-services插件,因此您的同步将会失败,最终将使您的构建失败。

因此,诀窍在于,在默认路由器设置之后,您需要在网络设置中配置google DNS(8.8.8.8)-该部分负责从中下载依赖项,jcenter()并且同步和构建成功。

现在,emulator @Nexus_5X_API_27 -dns-server 8.8.8.8从终端通过命令启动仿真器,强制仿真器使用8.8.8.8作为其DNS,仿真器将具有Internet。

我正在开发一个本机应用程序,因此对我来说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
   }

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

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

谢谢,维克拉姆


谢谢,现在可以使用。花了整整一天时间:/
TheBaj

无法将“仿真器”识别为内部或外部命令,可操作程序或批处理文件。
布达佩斯

@Bhupesh看到%HOME%\AppData\Local\Android\Sdk\emulator-这是我找到它的地方。
t3chb0t

9

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

脚步:

  1. 转到仿真器设置
  2. 选择代理选项卡
  3. 然后检查“使用Android Studio HTTP代理设置”选项
  4. 点击应用


这是唯一对我有用的答案,谢谢!
阿里亚

6

我已经解决了与谷歌的DNS网络适配器8.8.8.88.8.4.4

Android Emulator wifi连接,而Windows没有Internet解决方案


希望将此消息报告为某个地方的错误,因为这对我来说也花费了一些时间。
Renetik


4

好吧,我是这样做的:

添加手动代理的步骤:

  1. 转到仿真器设置
  2. 转到代理标签
  3. 设置手动代理配置
  4. 添加您的主机名端口号
  5. 点击申请

参考屏幕截图:

在此处输入图片说明

希望能帮助到你。


4

对我来说,这有所帮助:在Mac OSX(对我而言,Catalina)上,问题是由以下事实引起的:仿真器nameserver通过查看/etc/resolv.conf并选择第一个(在我的情况下为IPv6地址)来自动选择该地址。资源

只需编辑文件($ sudo vi /etc/resolv.conf),然后将IPv4地址(192.168.1.1在我的情况下)移到IPv6地址之前的第一个即可。

说真的,就是这样。从德米特里·克里斯托弗(Demetrios Christopher)


感谢您抽出宝贵的时间来回答问题!您能否:-1)编辑您的答案,以便详细了解答案。2)解释您试图通过此答案实现的目标以及您想说的话。有关更多信息,请参见帮助中心中的“我如何写一个好的答案”(如何提问:stackoverflow.com/help/how-to-answer
Paresh Mangukiya

3

也许这会帮助某人。我尝试了以上所有解决方案。更改DNS,冷启动等。经过几个小时的反复试验,我去了官方文档,该文档说模拟器选择了DNS配置。模拟器启动时主机的状态。我的计算机上安装了VMWare,该计算机上安装了一些网络适配器。所以,我只是更改了DNS配置。所有适配器(包括VMWare适配器)中的所有适配器,然后冷启动我的模拟器。OMG,这个问题似乎没有消失数小时,只是解决了!

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


我只需要冷启动模拟器
KvdLingen

3

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

更多信息

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

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

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

有关Google DSN的更多信息


1
不幸的是,当WFH时,我们需要VPN。简直无法相信Google已经离开这个问题很多年了。
史佑良

3

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


1
哇,令人难以置信,但对我有用,谢谢。
杰斯

3

在macOS上:

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

2

在Windows上:

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


2

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将已连接Internet。

希望这可以帮助。


0

对我有用的是:

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

0

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



0

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

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

祝好运!



0

对于新的搜索者用户: 有时VPN是您的解决方案 总是由于网络问题而无法更改网络设置。如果您使用的是Google不在这些区域响应的ip地址,则您的解决方案正在使用vpn。请使用适当的vpn(通过该vpn的vpn,您可以更新android studio)。当您启用vpn时,请启动avd设备(当然,仿真器的api级别很重要,例如api 22我没有任何问题,但是api 28需要使用vpn!)。这是我关于android模拟器互联网的经验。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.