Android java.net.UnknownHostException: хост не разрешен - PullRequest
50 голосов
/ 18 августа 2010

Этот код не работает:

URL         url   = new URL( xmlPath );
InputSource input = new InputSource( url.openStream() );

все время, в результате чего исключение UnknownHostException, даже когда хост существует, было успешно обработано с использованием того же кода с другого хоста (компьютера) разработки, а также из браузера.

Я, вероятно, не отвечаю на этот вопрос еще раз, повторяю Android java.net.UnknownHostException: Хост не решен (вопрос стратегии) ​​. Программное обеспечение форума не позволило бы мне прокомментировать неудовлетворительный ответ на этот вопрос (чтобы привлечь больше внимания к решению, которое я в конечном итоге нашел). Возможно, я еще недостаточно популярен, чтобы получить эту привилегию. В то же время я, по сути, повторно публикую вопрос и другой ответ.

В принципе, я согласен с тем, что, возможно, устройству Android при определенных обстоятельствах трудно работать с DNS, но я попробовал, например, пример anddev.org, как использовать синтаксический анализатор SAX, и он работал на одной машине. есть и не по другому.

Edit: Как уже было отмечено, я знаю рабочий ответ и опубликую его.

Я а) задаю вопрос (который уже был задан и на него безуспешно дан ответ) и б) отвечаю на него тем, кому мой ответ будет полезен.

Ответы [ 17 ]

2 голосов
/ 02 февраля 2013

проблема решена

запустите cd C: \ Program Files \ Android \ android-sdk \ tools

запустить список Android AVD в CMD возвращает список ваших доступных AVD .... в моем случае это Myabc_avd

запустить эмулятор @Myabc_avd -dns-server 8.8.8.8 в cmd ... avd покажет avd зайдите в браузер avd и введите www.google.com покажет страницу Google. Теперь вы можете получить доступ к браузеру, используя имя хоста, например myfrstapp.com

если все пойдет хорошо, вы можете запустить ваш проект с помощью eclipse, но убедитесь, что он работает в avd, который запускается из cmd.

2 голосов
/ 10 сентября 2012

Я просто перезагружаю AVD и добавляю разрешение пользователя, тогда оно работает.

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

2 голосов
/ 30 мая 2012

В моем случае я использовал URL на основе имени хоста с HttpURLConnection. Тем не менее, с помощью URL-адреса на основе IP, решил проблему. Я также удалил / воссоздал AVD, но это не помогло.

0 голосов
/ 19 апреля 2019

Пожалуйста, попробуйте перезагрузить эмулятор.

0 голосов
/ 30 сентября 2016

Я столкнулся с этой проблемой, когда запустил эмулятор во время входа в VPN. Выход из VPN не имел никакого эффекта, пока я не вышел из эмулятора и не перезапустился. Легко проверить, правильно ли ваш эмулятор разрешает имена - просто зайдите в браузер emulator и введите имя хоста сайта.

0 голосов
/ 17 октября 2014

Это так просто. Нет необходимости перезапускать затмение ИЛИ удалять и создавать Эмулятор, вам просто нужно выполнить шаги, указанные ниже:

  1. Щелкните правой кнопкой мыши по вашему проекту
  2. Нажмите « Запуск от имени »
  3. Нажмите « Выполнить настройку »
  4. Откроется окно
  5. В левой частипанель выбора конфигурации запуска вашего проекта
  6. Затем на правой панели откройте вкладку " Target "
  7. Прокрутите вниз
  8. В нижней части окна появится опция " Дополнительные аргументы командной строки эмулятора"
  9. Поместите" -dns-server 8.8.8.8"эти значения ( без двойных кавычек ) в текстовое поле.

Вот и все ...

0 голосов
/ 15 января 2014

В моем случае я только что перезапустил эмулятор, и он заработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...