首页 > 解决方案 > Android模拟器主机文件不适用于Android应用

问题描述

我有一个在 android 模拟器上运行的 react 本机应用程序,我正在尝试在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显示 127.0.0.1?dev.mywebsite.com

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

编辑

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

标签: androidreact-nativefetchhosts-file

解决方案


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

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

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


推荐阅读