【问题标题】:Why I am not able to run react-native application on my android device?为什么我无法在我的 android 设备上运行 react-native 应用程序?
【发布时间】:2025-12-08 16:35:01
【问题描述】:

当我尝试在我的设备上运行 react-native 应用程序时出现此错误。

我做的步骤:

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

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

【问题讨论】:

  • 你的安卓设备应该从服务器获取 JS 数据,或者你应该在本地捆绑 js 文件。你的服务器在运行吗? npm 开始
  • 我这样做了,但得到了同样的错误。 @abeikverdi

标签: react-native


【解决方案1】:

通常,运行 react-native run-android 会打开另一个命令提示符来启动 React Packager。

如果打包程序无法正常启动,您可以尝试以下步骤:

  1. 先运行react-native start手动启动打包服务器。
  2. 运行react-native run-android,它将检测打包程序正在运行并继续将应用程序部署到设备/模拟器中。

【讨论】:

    【解决方案2】:

    首先,你必须打开 react-native 本地数据包服务器:

    react-native startnpm start

    如果还有问题,可能是:

    • IP 地址可能有误。
    • 手机无法访问 IP 地址

    摇动你的设备显示菜单(或点击你的设备菜单),点击最后一项dev config设置你的电脑ip,如192.168.*.*:8081

    【讨论】:

    • 我的设备和电脑在不同的网络上。我还需要这样做吗?
    • 我已经这样做了:1. react-native init SampleApp 2. cd SampleApp 3. react-native run-android 4. react-native start
    • 这就是问题所在,你需要在同一个网络中,就像WiFi一样
    • 但在第一次尝试时,我成功运行了我的 react native 应用程序,而且我也在不同的网络上。
    • 不同网络无法通信,所以需要在同一个网络中,有时不需要设置,因为它是自动设置的。
    【解决方案3】:

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

    确保您的 8081 端口未被其他应用占用。如果是这样的话,每次我们输入“react-native run-ios/android”,Bundler就可以自动启动了。

    应用加载完成后,Bundler的窗口应该有一个进度条,显示加载ios/android下的bundle文件的详细信息。

    捆绑 [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (481/481),完成。

    【讨论】:

      最近更新 更多