我可以在 Android 模拟器中做些什么来将它连接到我的本地主机 Web 服务器页面http://localhost
或http://127.0.0.1
?
我试过了,但模拟器仍然接受我的请求,就像谷歌搜索本地主机一样,或者更糟糕的是,它说在我的网络服务器正常运行时它没有找到该页面。
我可以在 Android 模拟器中做些什么来将它连接到我的本地主机 Web 服务器页面http://localhost
或http://127.0.0.1
?
我试过了,但模拟器仍然接受我的请求,就像谷歌搜索本地主机一样,或者更糟糕的是,它说在我的网络服务器正常运行时它没有找到该页面。
用于10.0.2.2
默认 AVD和10.0.3.2
genymotion 。
我在家用机器上成功使用了 10.0.2.2,但是在工作中,它不起作用。经过几个小时的闲逛,我使用Android 虚拟设备(AVD) 管理器创建了一个新的模拟器实例,最后 10.0.2.2 工作了。
我不知道另一个模拟器实例出了什么问题(平台是一样的),但是如果你发现 10.0.2.2 不起作用,请尝试创建一个新的模拟器实例。
试试你的端口号http://10.0.2.2:8080/
在哪里。8080
它工作得很好。如果你只是尝试10.0.2.2
它是行不通的。您需要为其添加端口号。此外,如果已安装 Microsoft IIS,请尝试从控制面板关闭该功能(如果使用任何 Windows 操作系统),然后按上述方法尝试。
localhost:8000
每次运行模拟器时,您实际上可以通过运行以下命令来连接到机器的本地主机(仅在 Mac 上测试):
adb reverse tcp:8000 tcp:8000
只需将其放到 Android Studio 终端即可。
它基本上设置了一个反向代理,其中运行在您手机上的 http 服务器接受端口上的连接并将它们连接到您的计算机,反之亦然。
您可以通过这些 IP 连接到您的 PC 本地主机:
10.0.2.2:{port of your localhost}
=> 如果您在 xamp 中设置机器端口,则必须使用该端口。就我而言10.0.2.2:2080
您也可以使用您的网络适配器 IP。在 CMD 中写入ipconfig
并找到您的适配器 IP 地址:
如果模拟器无法连接到此 IP,请关闭模拟器并cold boot
从 AVD 管理器打开它:
您可以通过此 IP 连接到机器 localhost:10.0.3.2:{port number}
或者您的适配器 IP 地址,如我上面解释的:在我的情况下:192.168.1.3:2080
我需要找出模拟器“Nox App Player”的系统主机 IP 地址。这就是我发现它的方式172.17.100.2
。
ip link show
命令以显示所有网络接口。特别感兴趣的是 eth1 接口ifconfig eth1
命令,显示网络为172.17.100.15/255.255.255.0
172.17.100.1
,在 '172.17.100.2' 上获得成功。不确定防火墙是否会干扰,但在我的情况下没有也许这可以帮助其他人为其他模拟器解决这个问题。
如果您在 Windows 中,您可以转到 simbol 系统并编写ipconfig并检查分配给您的机器的 ip。
首先,安装Android调试桥:
$ sudo apt install adb android-sdk-platform-tools-common
像往常一样启动你的安卓模拟器,例如:
$ ~/Android/Sdk/emulator/emulator -avd Pixel_3a_API_30_x86
只有这样,在 Android 模拟器的网桥上配置一个反向代理,它将localhost
HTTP 请求转发到localhost
在您的主机上运行的服务器的适当端口(例如 8000),反之亦然:
$ adb reverse tcp:8000 tcp:8000
正在localhost:8000
或127.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
另一种解决方法是从 no-ip.org 获取一个免费域并将其指向您的本地 IP 地址。然后,而不是使用http://localhost/yourwebservice
你可以尝试http://yourdomain.no-ip.org/yourwebservice
我不知道,也许这个话题已经解决了,但是当我最近尝试在 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),您将看到一切正常。无需去路由器设置或做任何其他复杂的事情。我希望这能帮到您。享受。
我知道这是旧的,但如果你发现 10.0.2.2 不能作为计算机 IP,请按照这些说明查找它
10.0.2.2 是为基础机器 localhost 制作的。
端口号相同:1521 无需更改
abs 对我来说很好用..