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.