7

我在使用 PHP 和 MySQL 的 OS 10.5.8 服务器上开发我的所有网站,并且我已经配置了我的/etc/hostshttpd.conf文件以example.dev在该机器上的任何浏览器中显示我的网站。

我最近安装了 Android 的软件开发工具包,我想用它来开发和测试针对移动 Webkit 的样式表——但我无法在 Android 浏览器中访问我本地托管的项目。

这是有道理的,因为它模拟了整个 Android 操作系统,但是有解决方法吗?或者我只能测试实际计算机互联网上某处存在的项目,也许在隐藏目录中?

有人建议我编辑我的/etc/resolv.conf文件,但我不知道格式化本地托管域的正确方法resolv.conf- 我尝试了以下变体,但没有任何效果:

domain example.dev
nameserver 127.0.0.1

或者...

domain example.dev
nameserver localhost

在我的主机文件中,它是这样设置的:

127.0.0.1   localhost example.dev example2.dev [etc]
4

5 回答 5

13

您应该能够在 android 模拟器的 URL 中使用您的 mac 的 IP 地址,并能够以这种方式访问​​您的网站。当然,请确保在系统偏好设置中的共享下打开了网络共享,并且您的防火墙没有阻止该地址。

或者,您可以使用虚拟主机 IP 地址,即 10.0.2.2。运行模拟器时,这将始终映射到您的主机 mac。

如果由于某种原因您不想在 url 中使用 IP 地址,您可以通过修改模拟器中的 /etc/hosts 将您的 mac 的 IP 地址映射到您选择的任何名称。为此,您需要首先使文件系统可读写,然后将您的 mac 的 IP 和您想要的任何主机名添加到 /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

然后从您的浏览器访问“ http://cat-yodeling.local ”。你应该很高兴。

于 2009-08-24T18:36:05.007 回答
7

我遇到了同样的问题。@emmby 的解决方案听起来应该完全符合我的需要,但奇怪的是它似乎不起作用。命令运行了,但随后查看主机文件表明它实际上并没有被更新。

但我做了更多的研究,我已经找出了问题所在。

我遇到的核心问题是模拟设备的操作系统已经占用了 100% 的可用存储空间,因此编辑没有写入主机文件。但是,也没有给出错误消息。

我的猜测是@emmby 没有这个问题的原因是因为这个问题取决于你放在模拟器上的 Android 版本。某些版本可能会给您一些可用空间。

如果您确实遇到此问题,解决此问题的方法是启动具有更多存储空间的模拟器。这可以通过命令的-partition-size参数来完成emulator,如下所示:

emulator -partition-size 128 @MyEmulatedDevice

然后,您可以使用该adb -e shell命令并按照@emmby 的回答编辑文件。

但是,如果从 shell 编辑文件很痛苦,adb那么您也可以将其从模拟器复制到主机操作系统,在本地编辑,然后再次复制回来。它还处理重新安装。你会这样做:

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

然后在您喜欢的编辑器中编辑它。

然后将模拟器重新挂载到读/写模式,并将文件复制回来:

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

请注意,由于每当您重新启动模拟器时都会将其重置为默认状态,这可能是一个更好的解决方案,因为您可以将编辑后的文件保存在本地,因此您不必adb pull每次都重复和编辑步骤;您可以简单地启动模拟器,执行remountand push,然后您就可以开展业务了。

希望有帮助。

于 2011-07-15T12:04:28.690 回答
2

我通过在本地网络中使用计算机 IP 地址解决了类似的问题。

于 2009-08-24T04:34:07.970 回答
2

根据android 文档,您可以在模拟器上使用 10.0.2.2 访问系统 127.0.0.1 IP,这是主机环回接口的特殊别名。

于 2012-04-25T14:24:13.467 回答
2

按照以下两个链接上的说明进行操作:

http://www.codingonstilts.com/2012/04/android-emulator-hosts-file-entry.html(请务必注意 IP 地址和主机名之间的制表符以及文件底部的换行符)我做了一个“[SDKLOCATION]/platform-tools/adb pull /system/etc/hosts WHATEVERHOSTFILENAME”,首先查看原始主机文件的格式,然后使用它来推回它。

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

为我工作-祝你好运!!

于 2012-10-13T08:06:18.237 回答