No se puede resolver el host "<insertar URL aquí>" No hay dirección asociada con el nombre de host

98

Intenté seguir este tutorial: Obtener datos de la web

Intenté implementarlo en Android 3.0, la última plataforma para tabletas, sin embargo, aparece este error: " No se puede resolver el host" www.anddev.org "No hay dirección asociada con el nombre de host " .

Puede consultar la URL que utilicé solo para demostrar que el archivo existe. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt

Creé una clase privada y la extendí con asynctask. Aquí está el código:

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

Cualquier ayuda será apreciada.

황현정
fuente
Puede consultar este enlace . Espero que esto ayude
Summved Jain

Respuestas:

148

Apuesto a que olvidó darle permiso a su aplicación para usar Internet. Intente agregar esto a su manifiesto de Android:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
sanguijuela
fuente
siempre vea logcat para obtener el tipo de error, entonces se ahorrará su consumo de tiempo ... cuando se olvide de agregar el permiso ... logcat muestra el error ... o bien genera el informe de fallas ... ........
Vipin Sahu
14
Bueno, yo también tengo este problema. Tengo los permisos configurados correctamente. URLConnection funciona bien la mayor parte del tiempo. Pero a veces, obtengo este error varias veces seguidas. Es especialmente difícil de depurar, ya que solo aparece de vez en cuando ...
hendrix
También tiene mi permiso para sentirse bien por ayudar a la comunidad
Sebastien FERRAND
Agregué
7
Encontré este error porque había desactivado los datos móviles anteriormente y olvidé volver a activarlos. Funcionó bien en la oficina, pero tan pronto como me desconecté del wifi familiar, recibí el error. A veces son las cosas estúpidas: |
Codificador kármico
117

Por favor, compruebe si tiene una conexión a Internet válida.

Vladimir Ivanov
fuente
hmm ...: DI lo comprobó, y parece que tienes razón. Realmente no sé por qué, pero mi conexión a Internet está bien, sin embargo, el navegador dentro del emulador no puede acceder a nada. Eso es extraño ... El navegador del emulador estaba funcionando bien hace unos minutos.
황현정
1
Me siento como el mayor idiota. Estaba desarrollando en casa, en lugar de en la oficina y olvidé configurar WiFi. A veces se necesitan cosas como estas para hacerte recordar que a veces eres un idiota. Así que, ¡dame las gracias de todo corazón por hacerme sentir como un idiota! :)
RileyE
2
¡Lo mismo para mi! Wifi alguna manera y modo avión pueden ser seleccionados de modo que sólo tenía que desactivar el modo avión (yo no estaba realmente conectado a Internet-palmface)
d1jhoni1b
1
Lol no sé por qué esperaba que mi S3 iniciara sesión sin la conexión inalámbrica encendida.
Declan McKenna
Maldita sea. Apagué la conexión a Internet del simulador ayer y olvidé encenderlo esta mañana, ¡Gracias!
Robert J. Clegg
65

Puede que hayas tomado permiso

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

PERO

Es posible que haya olvidado ENCENDER Internet en el dispositivo móvil o en cualquier dispositivo.

Pratik Butani
fuente
2
¡No tener el dispositivo en wifi es lo que me sorprendió! ¡Ups!
Nico
11
Reiniciar el emulador me lo arregló.
Kacy
Gracias por enfatizar la parte de DISPOSITIVO MÓVIL. :)
Burak Karakuş
12

¿Puede acceder a esa URL desde el navegador integrado?

Si no es así, significa que su configuración de red no es correcta. Si está en el emulador, puede echar un vistazo a la sección de redes de los documentos.

Si está en OS / X, el emulador está usando "la primera" interfaz, en0 incluso si está en red inalámbrica (en1), ya que en0 sin un cable todavía está marcado como up. Puede emitir ifconfig en0 downy reiniciar el emulador. Creo que he leído sobre comportamientos similares en Windows.

Si tiene Wifi / 3G, llame a su proveedor de red para obtener la configuración correcta de DNS.

Heiko Rupp
fuente
hmm ...: DI lo comprobó, y parece que tienes razón. Realmente no sé por qué, pero mi conexión a Internet está bien, sin embargo, el navegador dentro del emulador no puede acceder a nada. Eso es extraño ... El navegador del emulador estaba funcionando bien hace un par de minutos.
황현정
¡Gracias! En mi caso, se configuró una intranet como la URL que causaba el error, el uso de una extranet obviamente resolvió el problema
CGR
11

si tiene Internet USB como yo, al emulador parece que no le gusta que la conexión se encienda y apague, por lo que es posible que deba reiniciar el emulador

Ian
fuente
6

Este error debido a su host no se puede traducir a direcciones IP a través de DNS.

Resolver de este problema:

1- Asegúrese de conectarse a Internet (verifique la calidad de la red).

2- Asegúrese de tener el permiso adecuado para acceder a la red

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Mina Fawzy
fuente
4

Recibí el mismo error y el problema fue que estaba en VPN y no me di cuenta de eso. Después de desconectar la VPN y volver a conectar el wifi lo resolvió.

obedecer
fuente
2

Además, asegúrese de que su dispositivo no esté en modo avión y / o que el uso de datos esté habilitado.

Dave Justen
fuente
0

Si ve esto de forma intermitente en wifi o LAN, pero su conexión a Internet móvil parece estar bien, lo más probable es que el enrutador de puerta de enlace económico de su ISP esté experimentando una alta carga de tráfico.

Debe capturar estos errores y mostrar un recordatorio al usuario para que cierre cualquier otra aplicación que use la red.

Pruebe ejecutando un par de videos de YouTube en HD en su escritorio para reproducirlos, o simplemente vaya a un Starbucks concurrido.

Dominic Cerisano
fuente
0

Reiniciar el emulador funciona en algún escenario.

Ramdhas
fuente
0

Tuve el mismo problema con el emulador de Android 10 y pude resolver el problema siguiendo los pasos a continuación:

  1. Vaya a Configuración → Red e Internet → Avanzado → DNS privado
  2. Seleccione el nombre de host del proveedor de DNS privado
  3. Ingrese: dns.google
  4. Clic en Guardar

Con esta configuración, su URL debería funcionar como se esperaba.

Andrey P.
fuente