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

Android emulator hosts file not working for android app

我在 android 模拟器上有一个 React 本机应用程序 运行,我正在尝试向我的本地 api(运行 在我的笔记本电脑上发出请求) 在 https://dev.mywebsite.com/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 本机应用程序却不能?如果你帮我解决这个问题,我会很兴奋 :) 也许有一些解决方法?我将投入代表赏金。

编辑

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

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

在主机文件末尾放一个空行。

Chrome 出于某种原因,如果您的主机文件没有它,但您的应用程序的请求不会。

当我的 phone 主机文件末尾没有空行时,我的 meizu_16s_android10 phone 主机仍在工作

但是当我运行adb push 'C:/Windows/System32/drivers/etc/hosts' '/etc/hosts'

android 主机将无法工作

我发现 windows 使用 CRLF,android 使用 LF

当我更换它时,android 主机正常工作