2011-07-21 21 views
6

Aquí está la línea cmd¿Necesita ayuda con emulador de Android Redes

"C:\Progra~2\Android\android-sdk\tools\emulator.exe" -avd Touch -netspeed full -netdelay none -http-proxy localhost:3128 -debug-proxy 

aquí es la consola cuando intento abrir google.com del emulador:

server name 'localhost' resolved to 127.0.0.1:3128 
proxy_http_setup: creating http proxy service connecting to: localhost:3128 
server name 'localhost' resolved to 127.0.0.1:3128 
proxy_http_setup: creating HTTP Proxy Service Footer is (len=2): 
' 
' 
http_service_connect: trying to connect to (null) 
http_service_connect: using HTTP rewriter 
tcp:(null)(880): connecting 
tcp:(null)(880): connected to http proxy, sending header 
tcp:(null)(880): sending 27 bytes: 
>> 43 4f 4e 4e 45 43 54 20 28 6e 75 6c 6c 29 20 48 CONNECT (null) H 
>> 54 54 50 2f 31 2e 31 0d 0a 0d 0a     TTP/1.1.... 

tcp:(null)(880): header sent, receiving first answer line 
tcp:(null)(880): received 'HTTP/1.0 400 Bad Request' 
tcp:(null)(880): connection refused, error=400 
http_service_connect: trying to connect to (null) 
http_service_connect: using HTTP rewriter 
tcp:(null)(888): connecting 

Aquí es excepción del ejemplo Wikitionary depurar

Caused by: java.net.ConnectException: en.wiktionary.org/91.198.174.232:80 - Connection refused 

sobre mi representación: se calamar en mi máquina local y está configurado para enrutar a través de los padres proxy (con auth). Esto funciona bien con navegador/Android SDK Loader/IntelliJ etc., pero la red de emulador no funciona.

El confunden principal es

tcp:(null) 

¿Alguna sugerencia?

+0

Estamos experimentando el mismo problema. Parece que comenzó cuando actualizamos a Android SDK 12. – Daddyboy

Respuesta

0

Como te estás refiriendo a localhost en tu sistema desde el emulador de Android, entonces tienes que usar http://10.0.2.2:8080/. Esto se debe a que el emulador de Android se ejecuta dentro de una máquina virtual y, por lo tanto, aquí 127.0.0.1 o localhost será la dirección de bucle invertido propia del emulador. Además, no necesita poner -netspeed full -netdelay none ya que las propiedades están establecidas en esos valores de forma predeterminada. Eche un vistazo a this para obtener más información sobre Emulator Networking.

EDIT:

Reemplaza localhost con otra dirección dependiendo de su situación. Si se trata de una dirección de enrutador/puerta de enlace, entonces la reemplaza por 10.0.2.1. Si se trata de un alias especial para la interfaz de loopback de su host (es decir, 127.0.0.1 en su máquina de desarrollo), entonces reemplácelo por 10.0.2.2. Si es un primer servidor DNS, entonces lo reemplaza con 10.0.2.3. Si se trata de un segundo, tercer y cuarto servidor DNS opcional, reemplácelo por 10.0.2.4/10.0.2.5/10.0.2.6. Si es la interfaz de red/ethernet del dispositivo emulado, entonces la reemplaza por 10.0.2.15. Si es la propia interfaz de loopback del dispositivo emulado, la reemplaza por 127.0.0.1. Además, la dirección 127.0.0.1 en su máquina de desarrollo corresponde a la propia interfaz loopback del emulador, por lo tanto, si desea acceder a los servicios que se ejecutan en la interfaz loopback de su máquina de desarrollo, debe usar la dirección especial 10.0.2.2. Haga clic en here para obtener más información al respecto.

+0

Puede que no sea relevante en este caso, ya que parece que la referencia a 'localhost' está en el software de host como el emulador, no en el software de Android que se ejecuta dentro del dispositivo emulado . –

+0

Hay otra dirección que puede colocar dependiendo de la situación, –

+0

Esas direcciones especiales solo tienen significado dentro del emulador, pero la opción de línea de comando es para el programa del emulador, que ve la vista de la PC de la red, no el emulado android dispositivo que se ejecuta dentro del emulador y ve esta red simulada especial. De hecho, una opción es dejar que elija el proxy de una variable de entorno genérica que no tenga ningún "conocimiento" de las funciones internas de la red del emulador de Android. –

1

Tengo el mismo problema (Mac Os X - Herramientas de Android SDK 12). Estos son mis registros de logcat:

08-04 15: 33: 41.576: INFO/java.net.Socket (256): www.google.com/209.85.148.104(80): java.net.ConnectException : www.google.com/209.85.148.104: 80 - Conexión rechazada

utilizo squid como proxy y los registros son:

1312464815.525 0 172.16.1.1 TCP_DENIED/400 1587 CONNECT: 0 - Ninguno/- texto/html

Parece que algo se pierde ...

También he notado que el emulador intenta usar mi dns en una solicitud.

Cuestiones relacionadas