2012-07-04 10 views
19

Quiero depurar mi aplicación de Android, conecto el dispositivo Android a mi PC usando el cable USB. En mi aplicación hay un botón para conectar con localhost, ip para localhost es 10.0.2.2 y el puerto es 8080, he leído que cuando se depura en el móvil, el ip 10.0.2.2 es el localhost para el dispositivo Android y no para mi PC, entonces qué cambios debo hacer a la ip en lugar de 10.0.2.2? o tengo que hacer otro cambio? En este caso, mi dispositivo Android es sony ericsson xperia arc sandroid connect to localhost de PC cuando depurador en el dispositivo móvil

+0

qué servidor está utilizando ?? .. como wamp o xampp –

+0

tomcat java en eclipse, y xampp para la base de datos –

+0

¿Quiere decir 'mysql' para la base de datos? – nikhil

Respuesta

12

Como 10.0.2.2 es la dirección del host local de su sistema (pc) (solo desde el emulador). En realidad, Android no reconoce localhost en url. entonces 10.0.2.2 es para eso significa. También para la dirección de loopback del dispositivo Android es 127.0.0.1.

Tu url con 10.0.2.2 es correcto. También puede usar Static IP de su sistema.

sólo comprueban

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

en el archivo de manifiesto de la aplicación.

EDIT:

Aquí está utilizando el puerto 8080 es así, prueba con comando adb en el equipo anfitrión.

adb forward tcp:8080 tcp:8080 

También indique los detalles sobre esta línea "quiero depurador mi aplicación en mi móvil".

Nota:

Si va a probar en el dispositivo real utilizar su red IP del sistema (PC).

+0

ya he establecido ese permiso, por lo que no puedo acceder a mi localhost desde el móvil? –

+0

si siempre tengo miedo de cmd, entonces preguntaré: si lo hice commad 'adb forward tcp: 8080 tcp: 8080' ¿puedo seguir trabajando en el emulador? y ¿xampp seguirá funcionando, y hay algo que perderé? –

+1

Cuando se está comunicando con el puerto USB, mediante el comando adb forward puede abrir un puerto particular para la comunicación con su aplicación y su equipo host (servidor-cliente). No puedes perder nada. – user370305

5

Para eso necesita hacer algunos cambios en su servidor xampp ... Asigne 1 dirección IP estática a su sistema y luego debe poner su servidor xampp en modo en línea. después de eso puedes usar esa dirección IP en tu aplicación Android en lugar de 10.0.2.2. Funciona bien para mí ya que estoy usando mi servidor local con mi aplicación de Android.

+0

mi servidor es Tomcat, y para tratar con la base de datos 'mysql' estoy usando xampp, si ese xampp para la base de datos es lo que quiere decir con servidor xampp, dígame por favor cómo puedo asignar IP estática al sistema, y ​​cómo puedo poner xampp servidor en modo en línea, pero te dije que xampp solo para la base de datos, myserver es java tomcat en eclipse –

+0

Jus comprueba la dirección IP de tu sistema. Dado que está utilizando el servidor Tomcat, entonces no es necesario poner xampp en modo en línea, pero debe estar en modo de ejecución. puede usar su sistema ip más su número de puerto tomcat para acceder a su archivo de servicio web. por ejemplo, si su dirección IP del sistema es 192.111.1.111 y su número de puerto Tomcat es 8080 (por defecto), entonces necesita usar 192.111.1.111:8080 en lugar de 10.0.2.2 ... –

+0

gracias, tengo una respuesta, voy a votar –

3

Puede compartir la conexión a Internet de su Mac a través de Wi-Fi. Luego, su aplicación de Android se puede conectar a un servlet que se ejecuta en la Mac con HTTP a través de Wi-Fi. Los pasos son:

  1. Sistema de Ejecución de preferencias en Mac
  2. Goto "Compartir" pestaña
  3. Encienda "Compartir Internet"
  4. "Ethernet"
  5. Seleccionar en el "Compartir la conexión desde" combo
  6. Seleccione "Wi-Fi" en el cuadro de lista "Para computadoras que usan"
  7. Utilice el botón "Opciones de Wi-Fi ..." para configurar la seguridad de Wi-Fi. Ahora su Mac es un servidor Wi-Fi y comparte su conexión a Internet Ethernet.
  8. Configure el Wi-Fi de su dispositivo Android para conectarse a su Mac (en el comando Configuraciones)
  9. En su Mac, vaya a la pestaña Red en Preferencias del sistema y seleccione Wi-Fi en la lista para encontrar la dirección IP de su Mac en la red Wi-Fi (para mí era 169.254.66.223)
  10. En su aplicación Android ahora puede conectarse al Servlet en su Mac con "http://169.254.66.223:8080/YourServer/YourServlet"
15

Google ha agregado soporte en Chrome 29 y superior para usar reenvío de puerto reverso para acceder a un sitio web alojado en su máquina de desarrollo local a través del cable USB en Chrome para Android. instrucciones de configuración se pueden encontrar en la siguiente URL:

A partir de escritorio Chrome 30 Reverse Port Forwarding ya no es una característica experimental en Chrome. Se puede acceder escribiendo about:inspect en la barra de direcciones de su PC y haciendo clic en la casilla de verificación "Habilitar reenvío de puertos" y haciendo clic en el botón "Configurar reenvío de puertos" ubicado en la esquina superior derecha de la ventana.

Una vez hecho esto, conecte su dispositivo móvil a través de USB. Abra Chrome en su dispositivo móvil al localhost:8000 (o el puerto que haya configurado en su servidor local).

La funcionalidad Reverse Port Forwarding se asegurará de que su dispositivo Android vea ahora el localhost de su PC.

+0

Chrome lo ha hecho muy fácil ahora: no hay más configuración de su servidor local, todo se hace automáticamente. También soluciona el problema de tener que configurar su firewall para permitir conexiones externas, que muchas de las otras técnicas requieren. –

+1

La respuesta correcta debe cambiarse para que sea esta. –

+1

Creo que esto debería vincularse a https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server –

Cuestiones relacionadas