为什么Expo Android模拟器不显示应用程序?

Ell*_*ica 6 command-line android android-emulator react-native expo

我是 Expo 新手,我正在尝试使用yarn android. (该应用程序只是使用创建的基本应用程序expo init my-project。)但是,虽然该命令很好地启动了模拟器,但我所看到的只是模拟设备——该应用程序从未出现。如果我在等待很长时间后关闭模拟器,终端会说模拟器在完成加载之前已关闭。

这是模拟器启动之前终端显示的内容:

在此输入图像描述

这是模拟器启动后的样子:

在此输入图像描述

如果我最终关闭模拟器,终端会显示以下内容:

在此输入图像描述

如果我让模拟器运行直到尝试加载应用程序超时,情况如下:

在此输入图像描述

您知道为什么该应用程序永远不会加载以及如何让它加载吗?如果我运行yarn web,应用程序可以在浏览器中正常加载,所以我知道这不是应用程序本身的问题。

Ell*_*ica 6

世博会在线/终端输出说明中缺少几个步骤。创建项目后不能立即进入yarn android,除非满足以下条件:

  • Expo Go应用程序已安装在您的模拟器/模拟器上

如果您没有安装该应用程序,该命令yarn androidexpo start --android作为实际命令调用)将失败并出现超时错误。

您可以Expo Go使用以下命令通过命令行安装(只要您已进入项目):

  • expo client:install:android [适用于安卓]
  • expo client:install:ios [适用于 iOS]

但是,该命令也会失败(出现超时错误),除非您已经进入模拟器/模拟器并登录到 Play Store/App Store。

因此,如果您尝试在新的模拟器/之前从未运行过的模拟器上运行 Expo,则您的步骤必须是:

  1. 打开你的模拟器。导航至 Play/App Store 并登录您的帐户
  2. 打开终端。使用以下命令创建 Expo 项目expo init my_project_name
  3. cd进入你的项目
  4. 使用以下命令安装 Expo Goexpo client:install:androidexpo client:install:ios
  5. 使用yarn android或运行您的应用程序yarn ios(或者expo start --android或者expo start --ios,如果您没有安装yarn)

这样做,一切都应该有效!

注意:在所有这些发生之后,我看到弹出的另一个错误是Network Response Timed Out模拟器本身在尝试加载应用程序时出现的错误。如果您在第 5 步之后收到该错误,请执行以下操作:

  1. 使用以下命令取消当前的跑步尝试Ctrl+C
  2. 附加--tunnel到您原来的运行命令并重试(例如yarn android --tunnel)。(密切关注终端,您可能会看到类似于以下内容的内容,如果已经存在“是”,则只需The package @expo/ngrok@^4.1.0 is required to use tunnels, would you like to install it globally?键入yes或点击。)有关解决方案和几个替代方案的更多信息,请参阅这篇文章(最有可能由于问题而引起的问题)防火墙行为)Enter--tunnel