549

我可以在 Android 模拟器中做些什么来将它连接到我的本地主机 Web 服务器页面http://localhosthttp://127.0.0.1

我试过了,但模拟器仍然接受我的请求,就像谷歌搜索本地主机一样,或者更糟糕的是,它说在我的网络服务器正常运行时它没有找到该页面。

4

15 回答 15

943

本地主机是指运行代码的设备,在本例中是模拟器。

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

在此处输入图像描述

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

于 2011-04-27T15:13:00.383 回答
168

用于10.0.2.2默认 AVD10.0.3.2genymotion 。

于 2014-07-20T18:25:48.357 回答
32

我在家用机器上成功使用了 10.0.2.2,但是在工作中,它不起作用。经过几个小时的闲逛,我使用Android 虚拟设备(AVD) 管理器创建了一个新的模拟器实例,最后 10.0.2.2 工作了。

我不知道另一个模拟器实例出了什么问题(平台是一样的),但是如果你发现 10.0.2.2 不起作用,请尝试创建一个新的模拟器实例。

于 2012-03-19T20:55:34.947 回答
29

试试你的端口号http://10.0.2.2:8080/在哪里。8080它工作得很好。如果你只是尝试10.0.2.2它是行不通的。您需要为其添加端口号。此外,如果已安装 Microsoft IIS,请尝试从控制面板关闭该功能(如果使用任何 Windows 操作系统),然后按上述方法尝试。

于 2013-09-05T21:17:38.293 回答
11

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

adb reverse tcp:8000 tcp:8000

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

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

于 2020-06-06T10:55:29.800 回答
10

根据文档:

10.0.2.2 - 主机环回接口的特殊别名(即开发机器上的 127.0.0.1)

查看Emulator Networking了解更多关于模拟器网络的技巧。

于 2015-11-09T11:07:08.650 回答
6

对于我的 Mac OS 山狮设备:

http://10.0.2.2:8888

完美运行!

于 2014-02-02T01:15:47.250 回答
3

如果您使用 Android 模拟器:

您可以通过这些 IP 连接到您的 PC 本地主机: 10.0.2.2:{port of your localhost}=> 如果您在 xamp 中设置机器端口,则必须使用该端口。就我而言10.0.2.2:2080

在此处输入图像描述

在此处输入图像描述

您也可以使用您的网络适配器 IP。在 CMD 中写入ipconfig并找到您的适配器 IP 地址:

在此处输入图像描述

在此处输入图像描述

如果模拟器无法连接到此 IP,请关闭模拟器并cold boot从 AVD 管理器打开它:

在此处输入图像描述

如果您使用 Genymotion :

您可以通过此 IP 连接到机器 localhost:10.0.3.2:{port number} 或者您的适配器 IP 地址,如我上面解释的:在我的情况下:192.168.1.3:2080

于 2020-12-13T17:53:03.087 回答
3

我需要找出模拟器“Nox App Player”的系统主机 IP 地址。这就是我发现它的方式172.17.100.2

  1. 从应用商店安装 Android Terminal Emulator
  2. 发出ip link show命令以显示所有网络接口。特别感兴趣的是 eth1 接口
  3. 发出ifconfig eth1命令,显示网络为172.17.100.15/255.255.255.0
  4. 从 开始 ping 地址172.17.100.1,在 '172.17.100.2' 上获得成功。不确定防火墙是否会干扰,但在我的情况下没有

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

于 2018-06-22T19:28:58.253 回答
1

如果您在 Windows 中,您可以转到 simbol 系统并编写ipconfig并检查分配给您的机器的 ip。

于 2014-02-23T12:39:59.680 回答
1

允许安装 PWA

首先,安装Android调试桥:

$ sudo apt install adb android-sdk-platform-tools-common

像往常一样启动你的安卓模拟器,例如:

$ ~/Android/Sdk/emulator/emulator -avd Pixel_3a_API_30_x86

只有这样,在 Android 模拟器的网桥上配置一个反向代理,它将localhostHTTP 请求转发到localhost在您的主机上运行的服务器的适当端口(例如 8000),反之亦然:

$ adb reverse tcp:8000 tcp:8000

正在localhost:8000127.0.0.1:8000 将可安装并连接到其service-worker.js. 而不允许从 IP 地址安装 PWA 10.0.2.2

警告: adb reverse tcp:8000 tcp:8000需要在每次 Android 模拟器调用后重新发布。

因此,启动 Android 模拟器的bash 脚本,后跟反向代理,如下所示:

#!/usr/bin/env bash

$HOME/Android/Sdk/emulator/emulator -avd Pixel_3a_API_30_x86 > /dev/null 2>&1

adb reverse tcp:8000 tcp:8000
于 2021-04-06T16:17:25.997 回答
-1

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

于 2014-04-30T09:24:27.310 回答
-1

我不知道,也许这个话题已经解决了,但是当我最近尝试在 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 是我的端口 另外我已经创建了浴缸文件,以便于使用 yournameofbathfile.bat,将该文件放在 rinedfolder 中。我的沐浴档案:

rinetd.exe -c rinetd.conf

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

于 2017-03-09T09:53:43.160 回答
-1

我知道这是旧的,但如果你发现 10.0.2.2 不能作为计算机 IP,请按照这些说明查找它

于 2021-07-14T11:45:50.217 回答
-2

10.0.2.2 是为基础机器 localhost 制作的。

端口号相同:1521 无需更改

abs 对我来说很好用..

于 2021-01-22T00:09:52.437 回答