Неможливо вирішити хост "<вставте URL тут>" Немає адреси, пов'язаної з ім'ям хоста


98

Я спробував виконати цей підручник: Отримання даних з Інтернету

Я спробував реалізувати його на Android 3.0, найновішій платформі для планшетів, однак я отримую цю помилку: " Неможливо вирішити хост" www.anddev.org "Немає адреси, пов'язаної з ім'ям хоста ".

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

Я створив приватний клас і поширив його за допомогою асинтакта. Ось код:

    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 показати помилку ...... або генерувати звіт про збій ... ........
Випін Саху

14
ну, я також маю цю проблему. У мене права налаштовані правильно. URLConnection працює прекрасно більшу частину часу. Але іноді я отримую цю помилку кілька разів поспіль. Особливо важко налагоджувати, оскільки воно з'являється лише час від часу ...
hendrix

Ви також маєте мій дозвіл відчувати себе чудово, допомагаючи громаді
Себастьян ФЕРРАНД

Я додав цей дозвіл і тоді я отримав таку ж помилку, чи є проблема в емуляторі
Pratik Butani

7
Я зіткнувся з цією помилкою, оскільки раніше вимкнув мобільні дані та забув увімкнути її. Це добре працювало в офісі, але, як тільки я вийшов із знайомого wifi, я отримував помилку. Іноді це дурні речі: |
Кармічний Кодер

117

Перевірте, чи маєте дійсне підключення до Інтернету.


хм ...: DI перевірив це, і здається, ти маєш рацію. Я справді не знаю, чому, але мій зв’язок з Інтернетом нормальний, проте браузер всередині емулятора нічого не може отримати. Це дивно .. Браузер емулятора працював чудово кілька хвилин тому.
황현정

1
Я відчуваю себе найбільшим ідіотом. Я розвивався вдома, замість офісу, і забув налаштувати WiFi. Іноді такі речі потребують, щоб ти згадав, що ти ідіот. Отож, щиро дякую за те, що змусив мене почувати себе ідіоткою! :)
RileyE

2
Те саме для мене! якимось способом можна вибрати режим Wifi та літак, тому мені довелося лише відключити режим літака (я дійсно не був підключений до Інтернету)
d1jhoni1b

1
Не знаю, чому я очікував, що мій S3 ввійде без ввімкнення бездротового зв'язку.
Деклан МакКенна

Даміт. Я вчора відключив підключення до Інтернету до тренажера та забув включити його сьогодні вранці, спасибі!
Роберт Дж. Клегг

65

Може, ви взяли дозвіл

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

АЛЕ

Можливо, ви забули ввімкнути Інтернет в мобільному або будь-якому пристрої.


2
Відсутність пристрою на wifi - це те, що мене вигнало! Уопс.
Ніко

11
Перезапуск емулятора виправив мені.
Каці

Дякуємо за наголос на частині мобільного пристрою. :)
Бурак Каракуш

12

Чи можете ви отримати доступ до цієї URL-адреси з вбудованого браузера?

Якщо ні, то це означає, що налаштування вашої мережі невірно. Якщо ви перебуваєте в емуляторі, ви можете ознайомитись з розділом мережевої документації.

Якщо ви перебуваєте в OS / X, емулятор використовує "перший" інтерфейс, en0, навіть якщо ви перебуваєте в бездротовому режимі (en1), оскільки en0 без кабелю все ще позначений як "up". Ви можете випустити ifconfig en0 downта перезапустити емулятор. Я думаю, що я читав про подібну поведінку в Windows.

Якщо ви перебуваєте на Wi-Fi / 3G, зателефонуйте своєму постачальнику послуг, щоб отримати правильні настройки DNS.


хм ...: DI перевірив це, і здається, ти маєш рацію. Я справді не знаю, чому, але мій зв’язок з Інтернетом нормальний, проте браузер всередині емулятора нічого не може отримати. Це дивно .. Браузер емулятора працював чудово пару хвилин тому.
황현정

Дякую! У моєму випадку інтрамережа була встановлена ​​як URL-адреса, що викликала помилку, використовуючи екстранет, очевидно, вирішив проблему
CGR

11

якщо у вас є такий Інтернет, як я, емулятор, здається, не любить включення та вимкнення з'єднання, тому вам може знадобитися перезапустити емулятор


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 або локальній мережі, але ваш мобільний Інтернет-з'єднання здається нормальним, швидше за все, дешевий маршрутизатор вашого провайдера провайдерів відчуває велике навантаження.

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

Перевірте, запустивши на робочий стіл кілька відео з ютуб високою формою 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.