2009-08-24 7 views
7

Desarrollo todos mis sitios en un servidor OS 10.5.8 con PHP y MySQL, y configuré mis archivos /etc/hosts y httpd.conf para mostrar mi sitio en example.dev en cualquier navegador de esa máquina.¿Cómo puedo ver los proyectos alojados localmente con el emulador de Android SDK?

Instalé recientemente el kit de desarrollo de software de Android que me gustaría usar para desarrollar y probar hojas de estilo dirigidas a Webkit móvil, pero no puedo acceder a mis proyectos alojados localmente en el navegador de Android.

Esto tiene sentido, ya que está emulando todo el sistema operativo Android, pero ¿hay alguna solución? ¿O solo puedo probar proyectos que existen en algún lugar de la computadora en Internet, tal vez en un directorio oculto?

Alguien sugirió que puedo editar mi archivo /etc/resolv.conf, pero no sé la forma correcta de dar formato a un dominio alojado localmente en el resolv.conf - Probé variaciones de los siguientes, y nada funciona:

domain example.dev 
nameserver 127.0.0.1 

O ...

domain example.dev 
nameserver localhost 

En mi archivo de hosts, que se ha configurado así:

127.0.0.1 localhost example.dev example2.dev [etc] 

Respuesta

2

Trabajé en un problema similar al usar la dirección IP de las computadoras en la red local.

13

Debería poder usar la dirección IP de su mac en la URL del emulador de Android y poder acceder a sus sitios de esa manera. Por supuesto, asegúrese de que Web Sharing esté activado en Compartir en Preferencias del sistema y que su firewall no esté bloqueando la dirección.

Alternativamente, puede usar la dirección IP del host virtual, que es 10.0.2.2. Esto siempre se asignará a su mac anfitrión cuando se ejecuta el emulador.

Si por alguna razón prefiere no utilizar las direcciones IP en sus direcciones URL, puede asignar la dirección IP de su mac al nombre que elija modificando/etc/hosts en su emulador. Para ello, tendrá que hacer primero el sistema de ficheros de lectura-escritura, a continuación, agregar IP de su Mac y cualquier nombre de host que desee a/etc/hosts:

adb -e shell 
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system 
# echo '10.0.2.2  cat-yodeling.local' >> /etc/hosts 

luego acceder a "http://cat-yodeling.local" de su navegador. Usted debe ser bueno para ir.

+0

Tenía la misma pregunta, y este es exactamente el tipo de respuesta que estaba buscando. Lamentablemente, no puedo hacer que funcione. Los comandos parecen estar funcionando, pero 'cat/etc/hosts' después muestra que la nueva línea no se ha escrito realmente. ¿Alguna idea adicional? – Spudley

+0

Creo que he resuelto cuál era mi problema. Lo publicaré como una nueva respuesta, ya que es demasiado para caber en un comentario. – Spudley

+0

Me encantaría conseguirlo para que foo.dev en mi simulador llegue a localhost: 3000 en mi mac. ¿Tener sentido? – Marc

7

Estaba teniendo el mismo problema. La solución de @ emmby sonaba como debería hacer exactamente lo que necesitaba, pero extrañamente no parecía funcionar. Los comandos se ejecutaron, pero mirar el archivo de hosts después mostró que en realidad no se estaba actualizando.

Pero hice un poco más de investigación, y he resuelto cuál era el problema.

El problema principal que tenía era que el sistema operativo del dispositivo emulado ya estaba ocupando el 100% del almacenamiento disponible, por lo que las ediciones no se escribían en el archivo de hosts. Sin embargo, tampoco se envió ningún mensaje de error.

Supongo que la razón por la que @emmby no tuvo este problema es porque el problema varía según la versión de Android que coloque en el emulador; algunas versiones pueden darle espacio libre para trabajar.

Si tiene este problema, la solución a esto es iniciar el emulador con más capacidad de almacenamiento. Esto se puede hacer con el argumento -partition-size para el comando emulator, así:

emulator -partition-size 128 @MyEmulatedDevice 

continuación, puede utilizar el comando adb -e shell y editar el archivo de acuerdo con la respuesta de @ emmby.

Sin embargo, si es complicado editar el archivo desde el shell, adb también le permite copiarlo desde el emulador al sistema operativo host, editarlo localmente y copiarlo de nuevo. También se ocupa de la remontada. Que lo haría así:

adb pull /system/etc/hosts C:\wherever\you\want\to\save\it 

Luego editar en su editor favorito.

vuelva a montar el emulador a modo de lectura/escritura, y copiar el archivo de nuevo:

adb remount 
adb push C:\wherever\you\saved\hosts /system/etc/hosts 

Tenga en cuenta que desde el emulador se restablece al estado de configuración por defecto cada vez que se reinicia, esto podría ser una solución mejor, porque puede mantener el archivo editado localmente, por lo que no tiene que repetir el adb pull y los pasos de edición cada vez; simplemente puede iniciar el emulador, haga remount y push, y estará en el negocio.

Espero que ayude.

1

Según android docs puede acceder a su sistema 127.0.0.1 IP usando 10.0.2.2 en su emulador, que es un alias especial para su interfaz de loopback de host.

+1

en realidad es 10.0.2.2, no 10.0.0.2 – jeremy

+0

sí, mi mal. Editado la respuesta. ¡Gracias! –

2

Siga las instrucciones en las siguientes dos enlaces:

http://www.codingonstilts.com/2012/04/android-emulator-hosts-file-entry.html (asegúrese de prestar atención a las lengüetas entre la dirección IP y el nombre de host y el salto de línea al final del archivo) Hice un "[ SDKLOCATION]/platform-tools/adb pull/system/etc/hosts WHATEVERHOSTFILENAME "para ver primero el formato del archivo host original y luego usarlo para volver a colocarlo.

Y luego: http://www.codingonstilts.com/2012/06/sync-os-x-hosts-file-to-android.html

funciona para mí - la buena suerte !!

Cuestiones relacionadas