如何从Eclipse中的Android仿真器连接到我的http:// localhost网络服务器


485

如何在Eclipse的Android仿真器中将其连接到位于http://localhost或的本地Web服务器页面上,该http://127.0.0.1怎么办?

我已经尝试过了,但是模拟器仍然像谷歌搜索本地主机那样接受我的请求,或者更糟的是它说在我的Web服务器正常运行时找不到页面。


这个问题是关于Android 模拟器的,并提供适用于该情况的解决方案。如果您在使用物理Android设备时遇到此问题,请改用stackoverflow.com/questions/4779963/…–
克里斯·斯特拉顿

Answers:


819

本地主机是指在其上运行代码的设备,在本例中为仿真器。

如果要引用运行Android模拟器的计算机,请改用IP地址10.0.2.2

enter image description here

您可以从这里阅读更多内容。


12
为什么还要提到其他问题?只需添加链接Android模拟器联网
马文周华健BRACH

感谢您指出链接。我猜答案发布时还不存在。
Primal Pappachan 2012年

1
@primpap:我可以使用机器名称代替IP地址吗?
KJEjava48 2015年

@primpap,这不适用于Mobile调试。还有其他吗?或者我在某处做错了,因为10.0.2.2正在仿真器上工作,但在我连接移动设备进行USB调试时却无法工作。?
Jawad Zeb 2015年

5
如此处的特定问题所述,此解决方案仅适用于仿真器。在物理Android设备上进行调试的用户必须使用服务器的实际IP地址或名称,而不能使用仅用于模拟器的特殊别名。 这个答案是好的 -但是读者需要注意自己的情况是适用的
克里斯·斯特拉顿


29

我在家用计算机上成功使用了10.0.2.2,但在工作中却无法正常工作。经过数小时的鬼混,我使用Android虚拟设备创建了一个新的模拟器实例(AVD)管理,终于10.0.2.2正常工作了。

我不知道其他模拟器实例(平台是相同的)出了什么问题,但是如果您发现10.0.2.2无法正常工作,请尝试创建一个新的模拟器实例。


4
不幸的是,即使创建了新的AVD实例,它也对我不起作用。你有什么建议?要重新安装一切吗?
VladoPandžić2013年

23

尝试http://10.0.2.2:8080/在哪里8080您的端口号。效果很好。如果您只是尝试10.0.2.2,将无法使用。您需要添加端口号。另外,如果已经安装了Microsoft IIS,请尝试从控制面板中关闭该功能(如果使用任何Windows操作系统),然后尝试如上所述。


2
如果页面托管在IIS上怎么办?
maracuja-juice

@Marimba只需弄清楚IIS服务器在哪个端口上运行,然后访问10.0.2.2:your_iis_port
StoneLam

这是一个完整的字符串,并且仅适用于我的android 8.1模拟器
CodeToLife



3

我需要找出模拟器“ Nox App Player”的系统主机IP地址。这就是我的想法172.17.100.2

  1. 从应用商店中安装了Android Terminal Emulator
  2. 发出ip link show命令以显示所有网络接口。eth1界面特别受关注
  3. 发出ifconfig eth1命令,将net显示为172.17.100.15/255.255.255.0
  4. 开始从ping地址开始172.17.100.1,地址为“ 172.17.100.2”。不知道防火墙是否会干扰,但就我而言不是

也许这可以帮助其他人为其他仿真器解决这个问题。


1

如果您在Windows中,则可以转到simbol系统并编写ipconfig并检查为您的计算机分配了什么IP。


从仿真器调试时,这不是必需的,因为您可以对其他答案中引用的主机回送接口使用特殊的别名。但是,如果从物理android设备进行调试,则可以,您需要确定测试服务器的实际地址并使用它。
克里斯·斯特拉顿

1

您实际上可以localhost:8000通过在每次运行模拟器时运行以下命令来连接到计算机的本地主机(仅在Mac上经过测试):

adb reverse tcp:8000 tcp:8000

只需将其放入Android Studio终端即可。

它基本上设置了一个反向代理,在该代理中,您手机上运行的http服务器接受端口上的连接,并将其连接到计算机,反之亦然。


0

我不知道,也许这个问题已经解决了,但是当我最近尝试在Windows计算机上执行此操作时,我遇到了很多困难。所以我的解决方案非常简单。我已经下载了此软件 http://www.lenzg.net/rinetd/rinetd.html按照其有关如何进行端口转发的说明然后按照说明将我的android设备成功连接到asp.net localhost项目,并在我的断点处停止了操作。

我的rinetd.conf文件:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

其中10.1.1.20是我的localhost ip,82和1234是我的端口,另外,为了方便起见,我还创建了bath文件,将yournameofbathfile.bat放在rinedfolder中。我的浴室文件:

rinetd.exe -c rinetd.conf

启动此软件后,启动aps.net服务器并尝试从android设备或本地网络中的任何设备(例如Computer ABC启动腻子)进行访问,您会看到一切正常。无需去设置路由器或做任何其他复杂的事情。我希望这能帮到您。请享用。


-1

另一个解决方法是从no-ip.org获取免费域,并将其指向您的本地IP地址。然后,http://localhost/yourwebservice您可以尝试使用http://yourdomain.no-ip.org/yourwebservice

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.