Подтвердить что ты не робот

Android: UnknownHostException

Я использую Android SDK 2.2, тестируя свое приложение с эмулятором. Я хочу отправить сообщение HTTP. Когда я это сделаю, я получаю исключение 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 );
}
4b9b3361

Ответ 1

Хорошо, я чувствую себя довольно хромым... Тег разрешения INTERNET является дочерним элементом тега манифеста, а не тегом приложения. Sheesh!

Ответ 2

Для других, я столкнулся с этой проблемой, и Google приземлился на меня. Как упоминалось в anisbet, я дважды проверял свой тег разрешения, и он был в нужном месте.

В конце концов я выпустил андроид, встроенный в браузер, и получил тот же ответ со своего веб-сервера, а также с Google.com(в то время как сам компьютер был в порядке). Я закончил эмулятор android и перезапустил; работал с первой попытки.

После просмотра кода, возможно, стоит перезапустить эмулятор. Со всей справедливостью к эмулятору вскоре после этого упало множество программ, поэтому, возможно, что-то еще происходило на моем компьютере. Тем не менее, это потратило много времени на меня, поэтому, возможно, это спасет кого-то головную боль, в которую я пошел.

Лучшее из удачи!

Ответ 3

Убедитесь, что у вас есть подключение к Интернету. Что случилось со мной, когда я забыл, что я тестирую мобильный телефон без подключения к интернету.

Ответ 4

Вы знаете, что для меня это решило, чтобы установить разрешение непосредственно перед тегом закрывающего манифеста, например:

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

Ответ 5

Это случается иногда, когда вы запускаете приложение в эмуляторе. Просто перезапустите эмулятор, чтобы решить проблему. Это сработало для меня!

Ответ 6

Если ни одно из вышеперечисленных действий не работает, попробуйте сделать шаг назад и убедиться, что ваше устройство или эмулятор действительно может попасть в Интернет, открыв браузер.

Ответ 7

У меня возникла аналогичная проблема при тестировании приложения с настройкой minSdkVersion на 4, и я пытался запустить его на G1. Меняя его на 3, я решил проблему.

Ответ 8

Я столкнулся с той же проблемой. У меня есть правильные разрешения в моем файле манифеста Android, и URL тоже правильный. Я получаю ответ в веб-браузере. Я перезапустил IDE, эмулятор, но не исправил проблему. Поэтому я удалил AVD, используя AVD-менеджер, а затем запустил эмулятор, и он начал работать.

Ответ 9

Окончательная проверка будет заключаться в том, что ваше доменное имя является допустимым доменом. Недопустимое значение подчеркивания в домене и вызовет исключение неизвестного хоста.

Ответ 10

Еще одна вещь: выяснилось, что сам интернет не работал на меня. Запуск эмулятора из командной строки с этими коммутаторами исправил его для меня: emulator -avd your_avd_name -dns-server 8.8.8.8

Ответ 11

Я видел эту ошибку при подключении к WiFi. Как только я отключил WiFi, это сработало. UnknownHostException вполне может быть выброшен из-за этой ошибки Android:

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

Ответ 12

Проверьте это также, если вы не используете эмулятор

Сегодня у меня такая же проблема, я не использую эмулятор, но включил USB-отладку для мобильных устройств для тестирования.

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

Ответ 13

Если вы открываете VPN, может быть результатом "Неизвестное исключение хоста"

Ответ 14

У меня возникла такая же проблема при использовании эмулятора, потому что я изменил wifi на моем ноутбуке, поэтому перезапуск Wi-Fi эмулятора решил мою проблему.