2012-02-19 6 views
7

Я новичок в Android, поэтому у этого вопроса может быть простой ответ (возможно, я что-то пропустил). Я пытаюсь сделать клиента REST с помощью системы Resting от Google (потому что Джерси, похоже, не работает). Когда я пытаюсь запустить клиент, я получаю это предупреждение: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> 

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

  • В предупреждении я заменил свой IP на «mi.ip» (это намеренно сделано, но в оригинале все в порядке).
+1

вы пробовали перезагрузить эмулятор, я получил это исключение много раз, но после перезапуска эмулятора проблема решена. попробуйте, если вы еще не пробовали –

+0

@NixitPatel Я перезапустил эмулятор несколько раз, а затем перезапустил eclipse, но я продолжаю получать эту ошибку. – Dragos

+0

Попробуйте запустить его на устройстве; иногда элюмант закручивается. Я знаю, что у меня есть аналогичная проблема с потоковыми файлами .mjpeg на эмуляторе; сбой на эмуляторе, но отлично работает на моем устройстве. –

ответ

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, вы можете иметь проблемы.

Или иногда, когда вы держите свой AVD открытым и меняете используемую вами сеть, например, выходите из офиса и начинаете пользоваться домашним Wi-Fi, вы должны получить такую ​​проблему, как у вас.

1

Я считаю, что у меня была такая же проблема, как и у ОП, я знаю, что это старый вопрос, но все равно опубликую мои выводы.

Проблема заключается в том, что методы фреймворка Resting, такие как get(), передают URL-адрес через его помощники подключения и ожидают, что вы предоставите порт в качестве второго параметра.

Так что, пример OP, вместо того:

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

Ваш звонок должен быть:

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

Надежда, что помогает кому-то :)

Смежные вопросы