2012-02-19 13 views
7

Jestem nowy na Androida, więc to pytanie może mieć prostą odpowiedź (być może coś przeoczyłem). Próbuję zrobić klienta REST z pomocą Resting framework od Google (ponieważ Jersey nie działa). Kiedy próbuję uruchomić klienta, mam to ostrzeżenie:Android Nie można rozpoznać hosta

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

a potem dostać kilka wyjątków, ale myślę, że to jest przyczyną.

mam pozwolenie internetowej:

<?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> 

Jeśli potrzebujesz dodatkowych informacji, proszę dać mi znać.

  • W ostrzeżeniu zastąpiłem mój adres IP "mi.ip" (jest to celowo zrobione, ale w oryginale wszystko jest w porządku).
+1

próbowałeś ponowne uruchomienie emulatora, mam ten wyjątek wiele razy, ale po ponownym uruchomieniu emulatora problem został rozwiązany. spróbuj jeśli nie próbowałeś –

+0

@NixitPatel Uruchomiłem emulator kilka razy, a następnie ponownie uruchomiłem Eclipse, ale ciągle otrzymuję ten błąd. – Dragos

+0

Spróbuj uruchomić go na urządzeniu; czasami emultator wkręca się. Wiem, że mam podobny problem z plikami strumieniowymi .mjpeg na emulatorze; awarie emulatora, ale działa idealnie na moim urządzeniu. –

Odpowiedz

1

Jeśli opublikujesz fragment kodu, w którym nawiążesz połączenie z serwerem, łatwiej Ci będzie pomóc. Ale prawdopodobnie Twój problem polega na utworzeniu identyfikatora URI, który będzie wywoływany. Przykład:

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); 

Tak więc, jeśli wywołasz metodę execute z nieprawidłowym lub błędnym identyfikatorem URI, możesz mieć problem.

Czasami, gdy otwierasz AVD i zmieniasz sieć, z której korzystasz, na przykład wychodzisz z biura i zaczynasz korzystać z domowego Wi-Fi, powinieneś mieć problem podobny do tego, który masz.

1

Wierzę, że miałem ten sam problem co OP, wiem, że to stare pytanie, ale i tak opublikuję moje wyniki.

Problem polega na tym, że spoczynkowe metody ramowe, takie jak get(), przekazują adres URL za pośrednictwem pomocników połączenia i oczekują podania portu jako drugiego parametru.

Więc biorąc przykład OP, zamiast:

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

rozmowa powinna być:

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

nadzieję, że pomoże ktoś :)

Powiązane problemy