Невозможно разрешить хост «<вставить URL сюда>» Нет адреса, связанного с именем хоста

98

Я пробовал следовать этому руководству: Получение данных из Интернета

Я попытался реализовать его на Android 3.0, последней платформе для планшетов, однако получаю такую ​​ошибку: « Невозможно разрешить хост» www.anddev.org «Нет адреса, связанного с именем хоста ».

Вы можете проверить URL-адрес, который я использовал, чтобы доказать, что файл существует. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt

Я создал частный класс и расширил его с помощью asynctask. Вот код:

    private class Downloader extends AsyncTask<String,Void,String>{
    String myString = null;
    @Override
    protected String doInBackground(String... arg0) {
        try{
            URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt");
            URLConnection ucon = myURL.openConnection();
            InputStream is = ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);

            ByteArrayBuffer baf = new ByteArrayBuffer(50);
            int current = 0;
            while((current=bis.read())!=-1){
                baf.append((byte)current);
            }
            myString = new String (baf.toByteArray());
        }catch(Exception e){
            myString = e.getMessage();
        }
        return myString;
    }
@Override
protected void onPostExecute(String result){
    tv.setText(result);
}
}

Любая помощь будет оценена по достоинству.

황현정
источник
Вы можете обратиться к этой ссылке . Надеюсь, это поможет,
Summved Jain

Ответы:

148

Держу пари, что вы забыли дать своему приложению разрешение на использование Интернета. Попробуйте добавить это в свой манифест Android:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
пиявка
источник
всегда смотрите logcat, чтобы узнать тип ошибки, тогда ваше потребление времени будет сохранено ... когда вы забудете добавить разрешение ... logcat покажет ошибку ... или либо создаст отчет о сбое ... ........
Vipin Sahu
14
ну, у меня тоже есть эта проблема. У меня правильно настроены разрешения. URLConnection большую часть времени работает нормально. Но иногда я получаю эту ошибку несколько раз подряд. Это особенно сложно отлаживать, так как оно появляется только время от времени ...
hendrix
У вас также есть мое разрешение чувствовать себя прекрасно, помогая сообществу
Себастьен ФЕРРАНД
Я добавил это разрешение, затем у меня такая же ошибка, есть ли проблемы в эмуляторе
Pratik Butani
7
Я столкнулся с этой ошибкой, потому что ранее отключил мобильные данные и забыл включить их снова. Он работал нормально в офисе, но как только я отключил привычный Wi-Fi, я получал ошибку. Иногда это глупости: |
Karmic Coder
117

Пожалуйста, проверьте, есть ли у вас действующее интернет-соединение.

Владимир Иванов
источник
хм ...: D Я проверил, и вроде ты прав. Я действительно не знаю почему, но у меня подключение к Интернету в порядке, однако браузер внутри эмулятора ни к чему не может получить доступ. Странно .. Несколько минут назад браузер эмулятора работал нормально.
황현정
1
Я чувствую себя самым большим идиотом. Я занимался разработкой дома, а не в офисе, и забыл настроить WiFi. Иногда такие вещи нужны, чтобы вспомнить, что иногда ты идиот. Итак, искреннее спасибо за то, что заставили меня почувствовать себя идиотом! :)
RileyE
2
Мне то же! каким-то образом можно выбрать Wi-Fi и режим полета, поэтому мне нужно было только отключить режим полета (я действительно не был подключен к интернет-ладонью)
d1jhoni1b
1
Лол, не знаю, почему я ожидал, что мой S3 войдет в систему без включения беспроводной сети.
Declan McKenna
Дамит. Я отключил интернет-соединение с симулятором вчера и забыл включить его сегодня утром, спасибо!
Роберт Дж. Клегг
65

Вы могли принять разрешение

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

НО

Возможно, вы забыли ВКЛЮЧИТЬ Интернет на мобильном или другом устройстве.

Пратик Бутани
источник
2
Меня поразило отсутствие устройства, подключенного к Wi-Fi! Упс.
Нико
11
Для меня это исправило перезапуск эмулятора.
Kacy
Спасибо, что сделали акцент на МОБИЛЬНОЕ УСТРОЙСТВО. :)
Burak Karakuş
12

Можете ли вы получить доступ к этому URL-адресу из встроенного браузера?

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

Если вы работаете в OS / X, эмулятор использует «первый» интерфейс, en0, даже если вы подключены к беспроводной сети (en1), поскольку en0 без кабеля по-прежнему помечается как up. Вы можете ifconfig en0 downзапустить и перезапустить эмулятор. Думаю, я читал о подобном поведении в Windows.

Если вы используете Wi-Fi / 3G, позвоните своему оператору сети, чтобы узнать правильные настройки DNS.

Хайко Рупп
источник
хм ...: D Я проверил, и вроде ты прав. Я действительно не знаю почему, но у меня подключение к Интернету в порядке, однако браузер внутри эмулятора ни к чему не может получить доступ. Странно .. Браузер эмулятора пару минут назад работал нормально.
황현정
Спасибо! В моем случае интрасеть была установлена ​​как URL-адрес, вызывающий ошибку, использование экстрасети, очевидно, решило проблему
CGR
11

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

Ян
источник
6

Эта ошибка из-за вашего хоста не может быть преобразована в IP-адреса через DNS.

Решите эту проблему:

1- Убедитесь, что вы подключены к Интернету (проверьте качество сети).

2- Убедитесь, что вы получили надлежащее разрешение на доступ к сети

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Мина Фаузи
источник
4

Я получил ту же ошибку, и проблема заключалась в том, что я был на VPN и не осознавал этого. После отключения VPN и повторного подключения Wi-Fi решила.

Адубей
источник
2

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

Дэйв Джастен
источник
0

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

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

Протестируйте, запустив пару видеороликов YouTube в формате HD на рабочем столе для воспроизведения или просто зайдите в оживленный Starbucks.

Доминик Черизано
источник
0

В некоторых случаях перезапуск эмулятора работает.

Рамдхи
источник
0

У меня была такая же проблема с эмулятором Android 10, и я смог решить ее, выполнив следующие действия:

  1. Перейдите в Настройки → Сеть и Интернет → Дополнительно → Частный DNS.
  2. Выберите имя хоста частного DNS-провайдера
  3. Введите: dns.google
  4. Нажмите Сохранить

При такой настройке ваш URL-адрес должен работать должным образом.

Андрей П.
источник