我使用PHP和MySQL在OS 10.5.8服务器上开发我的所有站点,并且我已经配置了/etc/hosts
和httpd.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]
答案 0 :(得分:13)
您应该能够在Android模拟器的URL中使用您的mac的IP地址,并能够以这种方式访问您的网站。当然,请确保在“系统偏好设置”中的“共享”下打开“网络共享”,并且防火墙未阻止该地址。
或者,您可以使用虚拟主机IP地址10.0.2.2。在运行模拟器时,它将始终映射到主机mac。
如果由于某种原因您不想在网址中使用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”。你应该好好去。
答案 1 :(得分:7)
我遇到了同样的问题。 @ emmby的解决方案听起来应该完全符合我的需要,但奇怪的是它似乎没有用。这些命令已经运行,但之后查看hosts文件显示它实际上没有被更新。
但我做了一些研究,我已经解决了问题所在。
我遇到的核心问题是仿真设备的操作系统已经占用了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
和每次编辑步骤;您只需启动模拟器,执行remount
和push
,即可开展业务。
希望有所帮助。
答案 2 :(得分:2)
我通过在本地网络中使用计算机IP地址解决了类似的问题。
答案 3 :(得分:2)
根据android docs,您可以在仿真器上使用10.0.2.2访问系统127.0.0.1 IP,这是主机环回接口的特殊别名。
答案 4 :(得分: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
适合我 - 祝你好运!!