Android无法解析主机

问题描述:

我是Android新手,所以这个问题可能有一个简单的答案(我可能错过了一些东西)。我试图在Google的Resting框架的帮助下制作一个REST客户端(因为Jersey似乎没有工作)。当我尝试运行客户端,我得到这样的警告:Android无法解析主机

W/System.err(728): java.net.UnknownHostException: Unable to resolve host "my.ip:8080": No address associated with hostname

,然后我得到了一些例外,但我想,这是根本原因。

我有上网权限:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.maze.client" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="15" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 


<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".RestingClientActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

如果您需要任何额外的信息,请让我知道。

  • 在警告我用“mi.ip”取代了我的IP(这是故意完成的,但在原来它是没问题的)。
+1

有你试图重新启动模拟器,我得到这个例外很多次,但重启模拟器后,问题就解决了。尝试如果你还没有尝试 – 2012-02-19 16:10:21

+0

@NixitPatel我已经重新启动模拟器多次,然后我重新启动了日食,但我不断收到此错误。 – Dragos 2012-02-19 16:38:33

+0

尝试在设备上运行它;有时候emultator会拧紧。我知道我在模拟器上有与流式.mjpeg文件类似的问题;在模拟器上崩溃但在我的设备上运行完美。 – 2012-02-19 17:08:54

如果您发布的代码段与服务器进行连接,将会更容易为您提供帮助。 但是,可能你的问题是创建要调用的URI。例如:

URI uri = URIUtils.createURI("http", "your-ip", 8080, "/path/to/webservice", 
     URLEncodedUtils.format(params, "UTF-8"), null); 
HttpClient client = new DefaultHttpClient(); 
HttpGet get = new HttpGet(uri); 
response = client.execute(get); 

因此,如果您使用无效或错误的URI调用execute方法,您可能会遇到问题。或者,有时候,当你打开AVD并改变你使用的网络时,例如,走出办公室并开始使用家庭无线网络,你应该会遇到这样的问题。

我相信我和OP有同样的问题,我知道这是一个老问题,但无论如何都会发表我的发现。

问题是静态框架方法(如get())会通过其连接助手传递url,并且期望您提供端口作为第二个参数。

因此,采取的不是OP的例子,:

Resting.get('my.ip:8080'); 

您的通话应该是:

Resting.get('my.ip', 8080) 

希望帮助别人:)