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.
Odpowiedzi:
Założę się, że zapomniałeś zezwolić swojej aplikacji na korzystanie z internetu. Spróbuj dodać to do swojego manifestu Androida:
źródło
Sprawdź, czy masz prawidłowe połączenie internetowe.
źródło
Obyś miał pozwolenie
ALE
Być może zapomniałeś WŁĄCZYĆ Internet w telefonie komórkowym lub jakimkolwiek urządzeniu.
źródło
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 down
i 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.
źródło
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
źródło
Ten błąd z powodu twojego hosta nie może zostać przetłumaczony na adresy IP przez DNS.
1- Upewnij się, że łączysz się z Internetem (sprawdź jakość sieci).
2- Upewnij się, że masz odpowiednie pozwolenie na dostęp do sieci
źródło
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.
źródło
Upewnij się również, że urządzenie nie działa w trybie samolotowym i / lub że jest włączone użycie danych.
źródło
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.
źródło
Ponowne uruchomienie emulatora działa w niektórych przypadkach.
źródło
Miałem ten sam problem z emulatorem Androida 10 i udało mi się rozwiązać problem, wykonując poniższe czynności:
Przy takiej konfiguracji adres URL powinien działać zgodnie z oczekiwaniami.
źródło