I know that similar questions have been asked before, but my problem is new only after installing Android Studio 2.3, the latest version in March 2017. I have several years experience developing Android applications, and I have never encountered this problem before. After upgrading to version 2.3 of Android Studio, my emulator is no longer able to access the internet. I even uninstalled/reinstalled Android Studio 2.3 from scratch and created a new emulator, and I am still getting the same error. This is not an app problem. I can't even access the internet from Chrome, and I wasn't having this problem last week. The message that I get says that the server DNS address could not be found -- DNS_PROBE_FINISHED_BAD_CONFIG. The only thing that has changed on my computer in the last week is the new version of Android plus possibly updates to Windows 10. And yes, my computer has access to the internet. Below is an image of my emulator when I try to use Chrome to search for "Google".
当前回答
我有同样的问题,我解决了以下步骤:-
转到模拟器设置,然后转到
设置->代理->手动配置或使用Tick使用Android Studio HTTP代理模拟器。
请投票,如果这对你有用的话
其他回答
这是一个问题,我上次模拟器更新自己,然后禁用其他网络适配器修复它。现在它又突然出现了,但唯一启用的适配器是一个wifi适配器,所以我没有什么可以禁用的。
在我通过提示更新模拟器工具到26.1.1之后,这个问题才再次出现。我通过SDK Tools更新选项卡卸载并重新安装了模拟器,幸运的是,现在重新安装时唯一的选择是安装26.0.3(似乎工作正常)。
这个故事的寓意是要非常小心模拟器更新。
我在升级到SDK 2.3的旧Stack Overflow线程上找到了一个临时解决方案-现在没有模拟器具有连接性。注意,本文讨论的是Android SDK 2.3,而不是Android Studio 2.3。问题似乎是模拟器无法找到我的计算机当前正在使用的DNS,临时的解决方法是从命令行启动模拟器并指定DNS服务器。无论当时发生了什么问题,一定会在最新版本的Android Studio中重新出现。
下面概述的临时解决方案修复了模拟器访问internet的问题。但是,它并没有修复试图运行Android设备监视器时发生的问题。这样做仍然会使模拟器脱机,如上所述。
注意,在sdk中有两个名为“模拟器.exe”的文件——一个在sdk\tools下,另一个在sdk\emulator下。任何一个都可能在下面工作,但我使用sdk\emulator下的一个。
第一步是找到SDK的位置。假设用户名为“jdoe”,并且在Windows上默认安装了Android Studio,那么SDK很可能在
C:\Users\jdoe\AppData\Local\Android\sdk
第二步是确定要运行的AVD(模拟器)的名称。命令
C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -list-avds
将显示avd的名称。在我的计算机上,它只显示了一个,Nexus_5X_API_25。
要使用指定的DNS服务器从命令行启动模拟器,可以使用如下命令:
C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -avd Nexus_5X_API_25 -dns-server 8.8.8.8
在此例中,8.8.8.8为谷歌公共域名服务器。
如果创建适当的环境变量并编辑PATH环境变量,则可以缩短上面的命令,但我建议在这样做时要谨慎。
MacOS解决方案,不为整个机器使用自定义DNS
步骤1
找到Android Studio在Android SDK中使用的模拟器可执行文件,并将其重命名为simulator -original。
我的位于/usr/local/share/android-sdk/emulator/emulator,但它可能会根据个人设置而有所不同。
步骤2
在包含以下命令的原始文件(或使用您选择的DNS服务器)的位置添加一个名为emulator的新文件。
#!/bin/bash
$0-original "$@" -dns-server 8.8.8.8
步骤3
使新的模拟器文件可执行。
chmod +x emulator
步骤4
使用Android Studio重新启动模拟器。
有同样的问题与我的模拟器,做了上面的一切,但没有工作。 更改我的默认网关 控制面板->网络和共享中心->本地连接设置: 192.168.1.119到192.168.1.1在我这里工作。 我不知道这个IP地址是如何工作的,但也许它会节省一些人的时间和挫折。
在我的情况下,它是查尔斯代理应用程序。即使关闭应用程序,模拟器仍然不能访问互联网。需要停止监听查尔斯的网络。
推荐文章
- 如何隐藏动作栏之前的活动被创建,然后再显示它?
- 是否有一种方法以编程方式滚动滚动视图到特定的编辑文本?
- 在Android中将字符串转换为Uri
- 如何在NestedScrollView内使用RecyclerView ?
- 移动到另一个EditText时,软键盘下一步点击Android
- Android应用中的GridView VS GridLayout
- Activity和FragmentActivity的区别
- 右对齐文本在android TextView
- 权限拒绝:start前台需要android.permission.FOREGROUND_SERVICE
- 如何更改android操作栏的标题和图标
- Android Split字符串
- 让一个链接在安卓浏览器启动我的应用程序?
- 如何在Android工作室的外部库中添加一个jar ?
- GridLayout(不是GridView)如何均匀地拉伸所有子元素
- 如何让一个片段删除自己,即它的等效完成()?