为什么我无法在我的安卓设备上运行React Native应用?

3
当我尝试在我的设备上运行React Native应用程序时,出现了这个错误。

Error Screen

我所做的步骤:

  1. react-native init SampleApp
  2. cd SampleApp
  3. react-native run-android
  4. react-native start

PS:第一次尝试时,我成功运行了 react-native 应用程序。现在我遇到了这个错误。我搜索了很多但仍未找到解决方案。


你的安卓设备应该从服务器获取JS数据,或者你可以将JS文件打包到本地。你的服务器是否已经运行?请执行npm start命令。 - abeikverdi
我已经尝试了这个,但是还是出现了同样的错误。@abeikverdi - Furqan
4个回答

4
通常情况下,运行react-native run-android命令将会打开另一个命令提示符来启动React Packager。
如果打包程序未能正常启动,您可以尝试以下步骤:
  1. 先运行react-native start手动启动打包程序服务器。
  2. 再运行react-native run-android,它将检测到打包程序正在运行,并继续将应用程序部署到设备/模拟器中。

0

首先,您需要打开React-Native本地包服务器:

react-native startnpm start

如果仍然有问题,可能是以下原因:

  • IP地址可能不正确。
  • 手机无法访问IP地址。

摇晃您的设备显示菜单(或点击您的设备菜单),点击最后一项dev config设置您的计算机IP,例如192.168.*.*:8081


我的设备和电脑在不同的网络上。我还需要这样做吗? - Furqan
我已经开始进行以下操作:
  1. react-native init SampleApp
  2. cd SampleApp
  3. react-native run-android
  4. react-native start
- Furqan
这就是问题所在,你需要处于相同的网络中,就像 WiFi 一样。 - zhouyuexie
但是在第一次尝试中,我成功地运行了我的React Native应用程序,而且我还处于不同的网络环境下。 - Furqan
不同的网络之间无法进行通信,因此您需要处于同一网络中,有时候您不需要进行设置,因为它会自动设置好。 - zhouyuexie

0

原因是另一个应用程序占用了所需运行Metro Bundler的8081端口。经过一些研究,我发现有人在运行“react-native run-ios/android”之前先运行“react-native start”来启动捆绑器。如果我先前启动了捆绑器,则运行“react-native run-ios”会成功。运行“react-native run-android”后,可以查看应用程序。但是,在单击R重新加载应用程序后,它显示404。

请确保您的端口8081未被其他应用程序占用。如果是这样,每次我们输入“react-native run-ios/android”时,捆绑器都可以自动启动。

当应用程序加载时,Bundler窗口应该有一个进度条,显示在ios/android下加载捆绑文件的详细信息。

BUNDLE [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (481/481), done.


0
有时候默认端口8081上运行着其他应用程序,所以需要更改端口并运行该应用程序。
我遇到了同样的问题,当使用不同的端口时问题得到解决 -->
对于Windows系统,
正确的方法是进入根目录并按照说明进行操作。
以管理员身份运行命令提示符,并执行以下命令。
npm start -- --port=8888

然后在根目录下以管理员身份打开另一个md文件 并运行以下命令
npm run android -- --port=8888

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接