with unknownhostexception unable net google error associated address android

android - google - error java net unknownhostexception unable to resolve host



Android java.net.UnknownHostException: el host está sin resolver (16)

Este código no funciona:

URL url = new URL( xmlPath ); InputSource input = new InputSource( url.openStream() );

todo el tiempo, lo que resulta en una excepción UnknownHostException, incluso cuando existe el host, se ha golpeado con éxito utilizando el mismo código si es de un host de desarrollo (máquina) diferente, y también de un navegador.

Probablemente estoy fuera de línea haciendo esta pregunta otra vez, una repetición de Android java.net.UnknownHostException: El host no está resuelto (pregunta de estrategia) . El software del foro no me permitió comentar sobre la respuesta insatisfactoria a esa pregunta (para solicitar más atención a la solución que finalmente encontré). Quizás no soy lo suficientemente popular como para recibir ese privilegio. Mientras tanto, esencialmente estoy re-publicando la pregunta y una respuesta diferente.

Básicamente, acepto que tal vez el dispositivo Android tenga dificultades con el DNS en ciertas circunstancias, pero he intentado, por ejemplo, el ejemplo de anddev.org de cómo usar el analizador SAX, y funcionó en una máquina que tengo y no en otro.

Edit: Como se señaló, conozco una respuesta de trabajo y la publicaré.

Estoy a) haciendo una pregunta (que ya se ha hecho y ha sido contestada sin éxito) yb) respondiéndola en beneficio de aquellos para quienes mi respuesta será útil.


Acabo de reiniciar el AVD y añado el permiso de usuario, entonces funciona.

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


En mi caso el problema estaba en otra parte. Tuve que:

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

  • configure un servidor proxy en mi emulador: Emulator > settings > wireless and network > Mobile Networks > Access Point Name > "the access point you have ;)" . Aquí puede configurar toda la url del puerto proxy y el inicio de sesión / pase que desee.

Y

  • Llame a mi operación de red en un hilo separado. La forma más fácil era implementar una AsynchTask.

He encontrado la solución aquí:

HTTP no funciona en el emulador de Android

"Esta excepción está ahí por una razón. La actividad de la red puede llevar tiempo, al hacer una red en el hilo principal, que es el mismo hilo que el responsable de actualizar la interfaz de usuario, congelaría el hilo hasta que la red esté lista (esto es lo que sucede en cada , pero cuando se realiza en un subproceso dedicado, está bien. En Android, si el subproceso de la interfaz de usuario no está activo durante 5 segundos, mostrará que la aplicación no responde. ¿Desea cerrarla? ".


En mi caso, acabo de reiniciar el emulador y funcionó.


En mi caso, estaba descargando un archivo XML de una URL en mi teléfono pero tenía el problema descrito en este hilo.

Para solucionarlo, no solo necesitaba el permiso regular de Internet.

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

Pero también necesitaba

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

Como una sugerencia para ver si su dispositivo puede necesitar lo mismo, intente navegar a la URL en el navegador de su teléfono para ver si hay indicaciones sobre la necesidad de una tarjeta SD o algo así.

Espero que ayude a los demás.


En mi caso, estaba usando una URL basada en el nombre de host con HttpURLConnection. Sin embargo, utilizando una URL basada en IP, se resolvió el problema. También eliminé / recreé el AVD pero eso no ayudó.


Encontré este problema cuando había iniciado el emulador mientras estaba conectado a una VPN. Cerrar la sesión de la VPN no tuvo efecto hasta que cerré el emulador y reinicié. Es fácil comprobar si su emulador no está resolviendo los nombres correctamente. Simplemente vaya al navegador del emulador y escriba el nombre de host de un sitio web.


Funciona para mí agregando el permiso del usuario para Internet en el archivo AndroidMenifest.xml

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


He seguido los pasos anteriores, pero aun así no he probado la suerte, finalmente me di cuenta de que mi aplicación no permitía salir de Internet en el emulador. Tan solo agrega permisos de usuario en tu archivo de manifiesto. ¡Hecho! Gracias a jozsi, vea http://www.helloandroid.com/tutorials/how-download-fileimage-url-your-device

  1. android.permission.INTERNET
  2. android.permission.ACCESS_NETWORK_STATE
  3. android.permission.READ_PHONE_STATE

La respuesta es diabólicamente simple: elimine y luego vuelva a crear su AVD (dispositivo virtual / emulador) en Eclipse. Funcionó para mí - la primera vez.


Mi problema fue cuando comparto Internet desde la computadora a través de WIFI, luego de que la conexión Ethernet se perdió y se volvió a conectar, no pude conectarme en el teléfono. Esto se solucionó al reiniciar el uso compartido de Internet en la computadora.

Espero que ayude a alguien.


Muchas gracias Russ. Me alegra que hayas persistido. Pasé la mejor parte de una hora leyendo todo tipo de soluciones posibles para este error. Solo para cualquier otra persona que se encuentre en este hilo, lo resumiré brevemente aquí: -El control de permisos de Internet está en el manifiesto -Coger la excepción (sin sentido) -Cambiar la configuración del firewall en su sistema operativo -La conexión compartida (solo en Windows) Y una carga de otras cosas

Mi solución tomó un poco más que la tuya, pero no mucho. Después de leer tu publicación, cerré y destruí todos los emuladores. Luego me di cuenta de que cuando pasé el ratón sobre el botón Ejecutar (círculo verde con una flecha blanca) decía que el programa ya se estaba ejecutando, ¡aunque no existían AVD (emuladores)! De todos modos, reinició eclipse, creó un AVD y lo ejecutó, y Bob era el hermano de mi padre. Nada que ver con mi código o configuración en absoluto.

Encontré esto después. Puede que logre lo mismo pero no puedo responder por ello a menos que el problema vuelva a ocurrir. http://www.jiahaoliuliu.com/2011/02/stopping-android-applications-already.html Otro truco que / puede / lograr el mismo resultado es marcar "borrar datos del usuario" en Ejecutar configuraciones, pestaña Destino.


Necesitas habilitar internet en tu emulador.

  • Emulador abierto

  • Presione el botón de menú y abra "configuración"

  • Abrir "wireles y red"

  • Abrir "Redes Móviles"

  • Compruebe en "Habilitar datos"

Ahora prueba tu aplicación de nuevo.


No pude deshacerme del emulador "UnknownHostExceptions" - y el navegador del emulador tampoco tendría conexión. Probé todas las sugerencias que pude encontrar en el desbordamiento de pila y en todas partes.

Finalmente, eliminé mi AVD, cerré Eclipse y luego creé el AVD a través de la línea de comandos. Luego lo lanzó a través de la línea de comandos con el servidor -dns 8.8.8.8. (en mi Mac: ./emulator -avd Google-8 -dns-server 8.8.8.8) ¡Finalmente funcionó!

Espero que esto ayude a alguien más.


También lo he visto en un teléfono (mientras hago la depuración de USB). La solución fue deshabilitar WiFi y volver a habilitarlo.


problema resuelto

ejecute cd C: / Archivos de programa / Android / android-sdk / tools

ejecutar android list avd en cmd devuelve la lista de ur availabe avd .... en mi caso es Myabc_avd

ejecute el emulador @Myabc_avd -dns-server 8.8.8.8 en cmd ... avd mostrará avd ir al navegador de avd y escriba www.google.com mostrará la página de Google. Ahora puedes acceder al navegador usando el nombre de host como myfrstapp.com

Si todo va bien, entonces puedes ejecutar tu proyecto usando eclipse, pero asegúrate de que esté ejecutándose en avd que se ejecuta desde cmd.


Es tan simple. No es necesario reiniciar Eclipse O eliminar y crear un Emulador, solo debe seguir los pasos que se detallan a continuación:

  1. Haga clic derecho en su proyecto
  2. Haga clic en " Ejecutar como "
  3. Haga clic en " Ejecutar configuración "
  4. La ventana se abrirá
  5. En el panel izquierdo, seleccione la configuración de ejecución de su proyecto.
  6. Luego, en el panel derecho, abra la pestaña " Destino "
  7. Desplazarse hacia abajo
  8. Obtendrá una opción en la parte inferior llamada " Argumentos de línea de comando de emulador adicionales "
  9. Coloque " -dns-server 8.8.8.8 " estos valores ( sin comillas dobles ) en el cuadro de texto.

Eso es...