Android:UnknownHostException

我正在使用Android SDK 2.2,使用模拟器testing我的应用程序。 我想发送一个HTTP Post。 当我做我得到一个UnknownHostException。 我已经放置了所需的权限
<uses-permission android:name="android.permission.INTERNET" / >
在manifest.xml中。 另外,我可以打开模拟器上的浏览器,并导航到没有问题的url。

这是我的代码:

 HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost( uri ); HttpResponse response = null; try { // Add your data List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>( 2 ); nameValuePairs.add( new BasicNameValuePair( "id", "edit-name" ) ); nameValuePairs .add( new BasicNameValuePair( "stringdata", userName ) ); httppost.setEntity( new UrlEncodedFormEntity( nameValuePairs ) ); // Execute HTTP Post Request response = httpclient.execute( httppost ); // Log.i( "HttpManager:", "======> response: " // + response.getEntity().getContent() ); } catch (ClientProtocolException e) { Log.e( "HttpManager", "ClientProtocolException thrown" + e ); } catch (IOException e) { Log.e( "HttpManager", "IOException thrown" + e ); } 

好吧,我感觉很蹩脚…… INTERNET权限标签是清单标签的一个子元素,而不是应用程序标签。 啧!

为了别人的考虑,我遇到了这个问题,一个Google让我着迷了。 正如anisbet所说,我仔细检查了我的许可标记,这是正确的。

我最终打开了浏览器内置的android,并得到了我的networking服务器和Google.com的响应(虽然电脑本身很好)。 我终止了Android模拟器,并重新启动; 第一次尝试工作。

检查完代码后,重新启动模拟器可能是值得的。 平心而论,一堆程序在这样做之后不久就崩溃了,所以也许在我的电脑里发生了其他事情。 尽pipe如此,这浪费了我一大笔时间,所以也许这可以帮助我解决头痛的问题。

好运!

确保你有一个互联网连接。 当我忘记使用没有互联网连接的手机进行testing时,这就是发生在我身上的事情。

你知道是什么解决了我是在closures清单标记之前的权限,如下所示:

 <uses-permission android:name="android.permission.INTERNET" /> </manifest> 

在模拟器中运行应用程序时,有时会发生这种情况。 只需重新启动模拟器就可以解决问题。 它为我工作!

如果以上都不起作用,请尝试退后一步,并确保您的设备或模拟器能够通过打开浏览器实际访问互联网。

当testing一个minSdkVersion设置为4的应用程序时,我碰到类似的问题,我试图在G1上运行它。 改为3解决了我的问题。

我遇到了同样的问题。 我在Android Manifest文件中拥有正确的权限,Url也是正确的。 我正在Web浏览器中获得响应。 我重新启动IDE,模拟器,但没有解决问题。 所以我删除了AVD使用AVDpipe理器,然后启动模拟器,它开始工作。

最后的检查是你的域名是一个有效的域名。 在域中有一个下划线是无效的,并会抛出一个未知的主机exception。

还有一件事:事实certificate,互联网本身并不适合我。 使用这些开关emulator -avd your_avd_name -dns-server 8.8.8.8启动模拟器为我解决了这个问题: emulator -avd your_avd_name -dns-server 8.8.8.8

连接到WiFi时,我看到了这个错误。 一旦我关掉WiFi,它就起作用了。 由于这个Android bug, UnknownHostException可能会被抛出:

http://code.google.com/p/android/issues/detail?id=67324

如果你不使用模拟器,请检查这一点

今天我得到了同样的问题,我没有使用模拟器,但在移动testing启用USBdebugging。

我没有打开手机中的数据,所以我得到了UnknownHostException ,一旦我打开它就解决了。

如果您打开VPN,可能会导致“未知主机exception”

我在使用模拟器时遇到了同样的问题,因为我改变了我的笔记本电脑上的wifi,所以重新启动模拟器的WiFi解决了我的问题。

Interesting Posts