Android 模拟器主机文件不适用于 android 应用程序

问题描述

我有一个在 android 模拟器上运行的 React Native 应用程序,我正在尝试向位于 https://dev.mywebsite.com/api 的本地 api(在我的笔记本电脑上运行)发出请求。该域在模拟器中是主机归档的,如下所示:

/etc/hosts/system/etc/hosts/etc/system/hosts 都有:

127.0.0.1       localhost
::1             ip6-localhost
10.0.2.2        dev.mywebsite.com

注意:我也试过我的本地ip地址192.168.1.13

该域有一个真正的 ssl 证书,我可以在模拟器上从 chrome 访问它,没有问题。

将我的 api 调用更改为部署在生产中的目标 https://mywebsite.com/api 确实有效。

出于某种原因,运行 adb shell 并 ping dev.mywebsite.com 显示 127.0.0.1?

为什么模拟器中的 chrome 可以工作,而我的 React Native 应用程序却不能?如果你帮我解决这个问题,我会很兴奋:) 也许有一些解决方法?我会投入代表赏金。

编辑

我让它在物理设备(不是模拟器)上工作。我使用了一个名为“Hosts Go”的应用程序将文件托管到 192.168.1.13 并且它工作正常。为什么 Hosts Go 应用程序可以运行,而模拟器主机文件却不能?我无法在我的物理设备上编辑主机文件,因为它没有进行测试。

解决方法

好吧,如果这不是调试更棘手的问题......

在您的主机文件末尾添加一个空行。

如果您的主机文件没有 Chrome,出于某种原因它可以工作,但来自您的应用的请求不会。