通过 USB 在真实设备上将本地主机 api 与 Android Studio 连接时出现超时错误

Timeout Error when connecting localhost api with Android Studio on Real devices through USB

我在 Window 8.1 上使用 Android Studio 版本 3。本地主机上的主机 php api 安装了 XAMPP。我正在尝试从 Android Studio 访问本地主机 api。

在主机名中,我使用了 IPv4 地址。

当我使用模拟器从 Android 版本 3 访问它时。完全没有问题。我正在使用 Volley 进行 api 通话。

当我尝试通过 USB 访问使用真实设备时...我总是出现超时错误。

我正在使用 Real 设备,因为我的 RAM 非常低。

如果您需要更多信息,请告诉我。

更新 1

我可以确认 Android 2.2.3 可以正常工作 运行 通过 USB

读取设备上的 apk

您通过 IPV4 访问本地主机在模拟器上有效,因为您的模拟器和主机在同一网络上。它会在真实设备上超时,因为真实设备不会通过 USB 连接到与您的主机相同的网络。

有两种方法:

  1. 确保您的设备和主机共享同一网络。可以通过 Wifi 将您的设备连接到主机网络。

  2. 如果您的设备由于某些限制无法连接到同一网络,那么您可以运行执行以下命令:

    adb reverse tcp:<localhost-port> tcp:<localhost-port>

然后在 URL

中使用 localhost 而不是 IPV4

我禁用了防火墙,一切正常。

您的网络防火墙阻止了与本地主机的连接。要解决此问题,您可以这样做:

在windows

第一种方法添加入站规则(推荐)

  • 使用 Windows 高级安全防火墙创建新的入站规则。在这种情况下,类型是端口,然后在下一页上输入 8080 作为端口。在下一页 select "Allow the connection" 或 "Allow the connection if it is secure"。 Select 当规则适用时,最后给规则起个名字。

  • 通过新的允许端口连接本地主机api。

  • 使用本地主机的 ip-address 而不是 localhost

防火墙的第二种方法。

在Linux

1.添加 IPTable 条目