Невозможно разрешить хост «<вставить 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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.