2012-02-19 4 views
7

Android에 익숙하지 않으므로이 질문에 대한 간단한 답변이있을 수 있습니다. 저지 (Jersey)가 작동하지 않는 것 같아서 Google에서 Resting 프레임 워크의 도움으로 REST 클라이언트를 만들려고합니다.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

당신이 에뮬레이터를 다시 시작 시도, 나는이 예외를 가지고 여러 번 있지만 에뮬레이터를 다시 시작한 후에 문제가 해결됩니다. 시도하지 않은 경우 시도하십시오 –

+0

@ NixitPatel 나는 에뮬레이터를 여러 번 다시 시작한 다음 Eclipse를 다시 시작했지만이 오류가 계속 발생합니다. – Dragos

+0

장치에서 실행 해보십시오. 때로는 에뮬레이터가 위로 올라간다. 에뮬레이터에서 .jpeg 파일을 스트리밍하는 것과 비슷한 문제가 있다는 것을 알고 있습니다. 에뮬레이터에서 충돌하지만 내 장치에서 완벽하게 실행됩니다. –

답변

1

서버에 연결하는 부분 코드를 게시하면 도움이 될 것입니다. 하지만, 아마도 당신의 문제는 호출 할 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를 열어 놓고 사용중인 네트워크를 변경 (예 : 사무실에서 나가서 집에서 WiFi 사용을 시작하는 경우)하는 경우가있을 수 있습니다.

1

나는 OP와 같은 문제가 있다고 생각하는데, 이것은 오래된 질문이지만 어쨌든 내 발견을 게시 할 것입니다.

get()과 같은 Resting 프레임 워크 메소드는 연결 헬퍼를 통해 url을 전달하므로 두 번째 매개 변수로 포트를 제공해야합니다.

그래서 대신에, 영업 이익의 예를 복용 :

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

전화가 있어야한다 : 도움이

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

희망 사람 :

관련 문제