无法解析主机“<在此处插入 URL>”没有与主机名关联的地址
Posted
技术标签:
【中文标题】无法解析主机“<在此处插入 URL>”没有与主机名关联的地址【英文标题】:Unable to resolve host "<insert URL here>" No address associated with hostname 【发布时间】:2011-08-15 08:18:01 【问题描述】:我尝试按照本教程进行操作: Getting Data from the Web
我尝试在最新的平板电脑平台 android 3.0 上实现它,但是,我收到此错误:“Unable to resolve host "www.anddev.org" No address associated with hostname.”
您可以签出我用来证明文件存在的 URL。 http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt
我创建了一个私有类并使用 asynctask 对其进行了扩展。代码如下:
private class Downloader extends AsyncTask<String,Void,String>
String myString = null;
@Override
protected String doInBackground(String... arg0)
try
URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt");
URLConnection ucon = myURL.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while((current=bis.read())!=-1)
baf.append((byte)current);
myString = new String (baf.toByteArray());
catch(Exception e)
myString = e.getMessage();
return myString;
@Override
protected void onPostExecute(String result)
tv.setText(result);
如有任何帮助,我们将不胜感激。
【问题讨论】:
可以参考this link。希望这会有所帮助 【参考方案1】:我敢打赌,您忘记授予您的应用使用互联网的权限。尝试将此添加到您的 android 清单中:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
【讨论】:
总是看到 logcat 来得到那种错误然后你的时间消耗将被节省......当你忘记添加权限时...... logcat 显示错误......或者要么生成崩溃报告............ 我也有这个问题。我的权限设置正确。 URLConnection 大部分时间都运行良好。但有时,我连续多次收到此错误。调试起来特别困难,因为它只是不时出现...... 我也允许您对帮助社区感到高兴 我已经添加了这个权限然后我也得到了同样的错误,模拟器有什么问题 我遇到了这个错误,因为我之前关闭了移动数据并忘记重新打开它。它在办公室工作得很好,但是一旦我关闭熟悉的 wifi,我就会收到错误消息。有时这是愚蠢的事情:|【参考方案2】:请检查您是否有有效的互联网连接。
【讨论】:
hmm... :D 我查过了,看来你是对的。我真的不知道为什么,但是我的互联网连接还可以,但是模拟器内的浏览器无法访问任何东西。这很奇怪.. 模拟器浏览器在几分钟前运行良好。 我觉得自己是最大的白痴。我在家里而不是办公室开发,我忘了设置 WiFi。有时需要这样的事情才能让你记住有时你是个白痴。所以,衷心感谢你让我觉得自己像个白痴! :) 我也一样!不知何故,可以选择 Wifi 和飞行模式,所以我只需要禁用飞行模式(我并没有真正连接到 internet-palmface) 哈哈,不知道为什么我希望我的 S3 在没有打开无线的情况下登录。 该死。我昨天关闭了模拟器的互联网连接,今天早上忘记打开它,谢谢!【参考方案3】:您可能已获得许可
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
但是
您可能忘记在移动设备或其他设备中开启互联网。
【讨论】:
没有把设备连接到 wifi 上是什么让我大吃一惊!哎呀。 重启模拟器帮我解决了问题。 感谢您强调移动设备部分。 :)【参考方案4】:您能否从内置浏览器中访问该网址?
如果不是,则表示您的网络设置不正确。如果您在模拟器中,您可以查看文档的networking section。
如果您在 OS/X 上,模拟器使用“第一个”接口 en0,即使您在无线 (en1) 上,因为没有电缆的 en0 仍然标记为 up。您可以发出ifconfig en0 down
并重新启动模拟器。我想我已经阅读过 Windows 上的类似行为。
如果您使用 Wifi/3G,请致电您的网络提供商以获取正确的 DNS 设置。
【讨论】:
hmm... :D 我查过了,看来你是对的。我真的不知道为什么,但是我的互联网连接还可以,但是模拟器内的浏览器无法访问任何东西。这很奇怪.. 模拟器的浏览器在几分钟前运行良好。 谢谢!在我的情况下,将 Intranet 设置为导致错误的 URL,使用 Extranet 显然解决了问题【参考方案5】:如果你像我一样有 USB 互联网,模拟器似乎不喜欢打开和关闭连接,所以你可能需要重新启动模拟器
【讨论】:
【参考方案6】:此错误是因为您的主机无法通过 DNS 转换为 IP 地址。
解决这个问题:
1- 确保您连接到互联网(检查网络质量)。
2- 确保您获得适当的网络访问权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
【讨论】:
【参考方案7】:我遇到了同样的错误,问题是我使用的是 ***,但我没有意识到这一点。断开***并重新连接wifi后解决了。
【讨论】:
【参考方案8】:另外,请确保您的设备未处于飞行模式和/或已启用数据使用。
【讨论】:
【参考方案9】:我在使用 Android 10 模拟器时遇到了同样的问题,我可以按照以下步骤解决该问题:
-
转到设置 → 网络和互联网 → 高级 → 私有 DNS
选择私有 DNS 提供商主机名
输入:dns.google
点击保存
通过此设置,您的 URL 应该可以正常工作。
【讨论】:
到目前为止,这似乎对我有用。这个修复究竟在做什么?谢谢。 @PeterG.Williams,模拟器上的默认 Android DNS 似乎无法进行正确的域转换,因此,通过此设置,我们明确要求使用 Google 的 DNS 服务。【参考方案10】:如果您在 wifi 或 LAN 上间歇性地看到这种情况,但您的移动互联网连接似乎还不错,则很可能您的 ISP 的廉价网关路由器正在经历高流量负载。
您应该捕获这些错误并提醒用户关闭使用网络的任何其他应用程序。
通过在您的桌面上运行几个高清 youtube 视频来进行测试,或者只是去繁忙的星巴克。
【讨论】:
【参考方案11】:在某些情况下重启模拟器是可行的。
【讨论】:
以上是关于无法解析主机“<在此处插入 URL>”没有与主机名关联的地址的主要内容,如果未能解决你的问题,请参考以下文章
apache 虚拟主机(EAI 2)名称或服务未知:AH00547:无法解析主机名