Nie można rozpoznać hosta „<tu wstaw adres URL>” Brak adresu skojarzonego z nazwą hosta


98

Próbowałem postępować zgodnie z tym samouczkiem: Pobieranie danych z sieci

Próbowałem zaimplementować go na Androidzie 3.0, najnowszej platformie dla tabletów, jednak pojawia się ten błąd: „ Nie można rozpoznać hosta” www.anddev.org „Brak adresu skojarzonego z nazwą hosta ”.

Możesz sprawdzić adres URL, którego użyłem, aby udowodnić, że plik istnieje. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt

Utworzyłem klasę prywatną i rozszerzyłem ją o asynctask. Oto kod:

    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);
}
}

Każda pomoc byłaby doceniona.


Możesz odnieść się do tego linku . Mam nadzieję, że to pomoże
— Summved Jain

Odpowiedzi:


148

Założę się, że zapomniałeś zezwolić swojej aplikacji na korzystanie z internetu. Spróbuj dodać to do swojego manifestu Androida:

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

zawsze zobacz logcat, aby uzyskać rodzaj błędu, wtedy zużycie czasu zostanie zapisane ...... kiedy zapomnisz dodać uprawnienia .. logcat pokaż błąd ...... lub wygeneruj raport o awarii ... ........
— Vipin Sahu

14
cóż, ja też mam ten problem. Mam poprawnie skonfigurowane uprawnienia. URLConnection działa prawidłowo przez większość czasu. Ale czasami pojawia się ten błąd kilka razy z rzędu. Jest to szczególnie trudne do debugowania, ponieważ pojawia się tylko od czasu do czasu ...
— hendrix

Masz również moje pozwolenie, aby czuć się świetnie, pomagając społeczności
— Sebastien FERRAND

Dodałem to uprawnienie, a następnie mam ten sam błąd, czy jest jakiś problem w emulatorze
— Pratik Butani

7
Napotkałem ten błąd, ponieważ wcześniej wyłączyłem dane mobilne i zapomniałem włączyć je ponownie. W biurze działało dobrze, ale gdy tylko wyłączyłem znane Wi-Fi, pojawiał się błąd. Czasami to głupie rzeczy: |
— Karmic Coder

117

Sprawdź, czy masz prawidłowe połączenie internetowe.


hmm ...: D sprawdziłem i wygląda na to, że masz rację. Naprawdę nie wiem dlaczego, ale moje połączenie internetowe jest w porządku, jednak przeglądarka w emulatorze nie ma dostępu do niczego. To dziwne ... Przeglądarka emulatora działała dobrze kilka minut temu.
— 황현정

1
Czuję się jak największy idiota. Rozwijałem się w domu, zamiast w biurze i zapomniałem skonfigurować WiFi. Czasami potrzeba takich rzeczy, abyś przypomniał sobie, że czasami jesteś idiotą. Więc z całego serca dziękuję za to, że poczułem się jak idiota! :)
— RileyE

2
Dla mnie to samo! w jakiś sposób można wybrać tryb Wi-Fi i samolotowy, więc musiałem tylko wyłączyć tryb samolotowy (tak naprawdę nie byłem podłączony do internetu-palmface)
— d1jhoni1b

1
Lol nie wiem, dlaczego spodziewałem się, że mój S3 zaloguje się bez włączonej łączności bezprzewodowej.
— Declan McKenna

Cholera. Wczoraj wyłączyłem połączenie internetowe z symulatorem i zapomniałem go włączyć dziś rano. Dzięki!
— Robert J. Clegg

65

Obyś miał pozwolenie

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

ALE

Być może zapomniałeś WŁĄCZYĆ Internet w telefonie komórkowym lub jakimkolwiek urządzeniu.


2
To, co mnie zaskoczyło, to brak połączenia z Wi-Fi! Ups.
— Nico

11
Ponowne uruchomienie emulatora naprawiło to za mnie.
— Kacy

Dziękuję za podkreślenie części URZĄDZENIA MOBILNE. :)
— Burak Karakuş

12

Czy jesteś w stanie dotrzeć do tego adresu URL z poziomu wbudowanej przeglądarki?

Jeśli nie, oznacza to, że konfiguracja sieci jest nieprawidłowa. Jeśli jesteś w emulatorze, możesz rzucić okiem na sekcję dotyczącą sieci w dokumentacji.

Jeśli jesteś na OS / X, emulator używa "pierwszego" interfejsu, en0, nawet jeśli pracujesz w trybie bezprzewodowym (en1), ponieważ en0 bez kabla jest nadal oznaczony jako up. Możesz wydać ifconfig en0 downi ponownie uruchomić emulator. Myślę, że czytałem o podobnym zachowaniu w systemie Windows.

Jeśli korzystasz z Wi-Fi / 3G, skontaktuj się z operatorem sieci, aby uzyskać prawidłowe ustawienia DNS.


hmm ...: D sprawdziłem i wygląda na to, że masz rację. Naprawdę nie wiem dlaczego, ale moje połączenie internetowe jest w porządku, jednak przeglądarka w emulatorze nie ma dostępu do niczego. To dziwne ... Kilka minut temu przeglądarka emulatora działała dobrze.
— 황현정

Dzięki! W moim przypadku intranet został ustawiony jako adres URL powodujący błąd, użycie ekstranetu oczywiście rozwiązało problem
— CGR

11

jeśli masz internet USB tak jak ja, emulator wydaje się nie lubić włączania i wyłączania połączenia, więc może być konieczne ponowne uruchomienie emulatora


6

Ten błąd z powodu twojego hosta nie może zostać przetłumaczony na adresy IP przez DNS.

Rozwiąż ten problem:

1- Upewnij się, że łączysz się z Internetem (sprawdź jakość sieci).

2- Upewnij się, że masz odpowiednie pozwolenie na dostęp do sieci

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

4

Otrzymałem ten sam błąd, a problem polegał na tym, że korzystałem z VPN i nie zdawałem sobie z tego sprawy. Po odłączeniu VPN i ponownym podłączeniu Wi-Fi rozwiązało to.


2

Upewnij się również, że urządzenie nie działa w trybie samolotowym i / lub że jest włączone użycie danych.


0

Jeśli widzisz to sporadycznie w sieci Wi-Fi lub LAN, ale Twoje mobilne połączenie internetowe wydaje się być w porządku, najprawdopodobniej tani router z bramą Twojego usługodawcy internetowego ma duże obciążenie ruchem.

Powinieneś wychwycić te błędy i wyświetlić użytkownikowi przypomnienie o zamknięciu innych aplikacji korzystających z sieci.

Przetestuj, uruchamiając kilka filmów HD z YouTube na komputerze, aby je odtworzyć, lub po prostu idź do zapracowanego Starbucks.


0

Ponowne uruchomienie emulatora działa w niektórych przypadkach.


0

Miałem ten sam problem z emulatorem Androida 10 i udało mi się rozwiązać problem, wykonując poniższe czynności:

  1. Wybierz Ustawienia → Sieć i internet → Zaawansowane → Prywatny DNS
  2. Wybierz nazwę hosta prywatnego dostawcy DNS
  3. Wpisz: dns.google
  4. Kliknij Zapisz

Przy takiej konfiguracji adres URL powinien działać zgodnie z oczekiwaniami.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.