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".
当前回答
在过去的8个小时里,我一直在想办法解决这个问题。事情发生在我家停电之后。我的模拟器将不再连接到我的电脑的互联网。我试了所有的解。将DNS更改为8.8.8.8有效,但我不想将所有流量路由到谷歌。
最终奏效的是。我知道这很疯狂,但是拔掉我的wifi路由器/调制解调器。一个快速拔插修复了这个问题。在这个SO问题和其他5个问题上,我用尽了一切办法。我甚至重新下载了Android Studio和模拟器。这些都没用。试着拔掉你的路由器/调制解调器。
其他回答
在尝试了许多这些解决方案之后,我打算删除我当前的AVD并重新制作它,但当我点击AVD上的向下箭头时,我注意到“现在冷启动”。
一时兴起,我试了一下。瞧,我的模拟器又有互联网连接了!
命令行方式
如果你通过命令启动模拟器,传递-no-snapshot-load选项,比如:
%ANDROID_HOME%/emulator/emulator.exe -netdelay none -netspeed full -no-snapshot-load -avd Pixel_2_API_28
或者MacOSX:
$ANDROID_HOME/emulator/emulator -netdelay none -netspeed full -no-snapshot-load -avd Pixel_2_API_28
注意,您可能需要更改-avd Pixel_2_API_28部分(与您自己的虚拟设备名称)。 此外,大多数工具使用ANDROID_HOME环境变量名,因此定义它(如果还没有),但现在ANDROID_ROOT是另一个命名选项。
决定(编辑)
对于那些说为什么不擦除数据重新启动的人。 你每次重启电脑时都重新格式化吗?擦除模拟器上的数据就像对手机进行出厂重置或重新格式化PC上的硬盘驱动器并重新安装操作系统。除非数据完全损坏,否则这是不必要的。
当你关闭模拟器并重新启动它时,它就像将你的电脑置于休眠或睡眠模式。记忆不是被抹去,而是被保存。
冷启动和重启手机或电脑是一样的。它可以重置内存并重新加载。这允许网络模拟以干净的内存启动并正确连接。
所以,不要擦除数据。只是冷启动。如果还是没用,那就擦一下,但要留作最后的手段。
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重新启动模拟器。
对我来说,问题是我的电脑连接了VPN。一旦我断开连接,它开始在模拟器中工作。
首先尝试“冷启动”模拟器,建议在这里。 如果冷启动不起作用,请尝试将网络的DNS地址更改为8.8.8.8(谷歌的DNS)或其他您喜欢的DNS:
MacOSX:
打开“系统首选项” 点击“网络” 选择你的电脑所连接的网络,然后点击“高级” 选择“DNS”,选择“+”按钮,输入“8.8.8.8”(谷歌的DNS),或者如果你喜欢OpenDNS,“208.67.222.222” 选择“确定”和“应用”
Windows和Linux:
https://developers.google.com/speed/public-dns/docs/using
之后,关闭模拟器并重新启动它。
推荐文章
- 如何隐藏动作栏之前的活动被创建,然后再显示它?
- 是否有一种方法以编程方式滚动滚动视图到特定的编辑文本?
- 在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)如何均匀地拉伸所有子元素
- 如何让一个片段删除自己,即它的等效完成()?