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.

황현정
źródło
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" />
pijawka
źródło
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.

Vladimir Ivanov
źródło
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.

Pratik Butani
źródło
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.

Heiko Rupp
źródło
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

Ian
źródło
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" />
Mina Fawzy
źródło
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.

adubey
źródło
2

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

Dave Justen
źródło
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.

Dominic Cerisano
źródło
0

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

Ramdhas
źródło
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.

Andrey P.
źródło