在 react-native 中调用 Appregistry.runApplication 时出错

IT技术 javascript android reactjs react-native
2021-04-05 12:37:34

我正在尝试在 android 模拟器上运行一个 react-native 应用程序,但我收到了类似的错误

调用 Appregistry.runApplication 时出错

AVD:'Nexus_5X_API_23(AVD) - 6.0 操作系统:Windows 10

在此处输入图片说明

请帮忙解决这个问题?

6个回答

几天前,我遇到了与您目前遇到的几乎相同的问题。对我来说,这是一个真正的设备。

根据我的所有研究,对我有用的解决方案如下:

当您通过键入 启动您的应用程序时react-native run-android,会出现错误。

因此,到达包含“adb.exe”的目录(对我来说是 C:\Users\username\AppData\Local\Android\Sdk\platform-tools\ )

从这里打开一个终端。并输入adb reverse tcp:8081 tcp:8081

然后,通过在手机上重新加载应用程序,它应该可以工作。

我希望这能帮到您 !!(如果没有,我可耻)

干杯;)

编辑 :

我找到了一个更方便的解决方案来解决这个问题。

当您启动“react-native run-android”时,您可能会有一条评论说“adb 未被识别为内部或外部命令...”

好吧,您可以添加一个指向 adb.exe 的环境变量,而不是手动使用 adb 命令。

只需进入“控制面板”>“系统和安全”>“系统”>“高级系统设置”。

从这里,单击“环境变量”。在“系统变量”部分搜索“路径”变量。单击它并按“编辑”按钮。

您可以在那里为该变量添加新路径。只需单击“新建”按钮并写入 adb.exe 路径。例如 C:\Users\username\AppData\Local\Android\Sdk\platform-tools\

(对于最旧的 Windows 版本,您必须在内容中添加“;C:\Users\username\AppData\Local\Android\Sdk\platform-tools\”。)

就是这样,现在adb reverse tcp:8081 tcp:8081命令将在构建时自动运行。

希望这会对您有更多帮助!

使用真实设备时完美运行。谢了哥们!
2021-05-22 12:37:34
该问题可能是由于手机无法访问计算机端口 8081 上的调试服务造成的,因为它们位于不同的网络(例如 LTE 与 WiFi),并且 adb reverse 命令将流量从手机重定向到计算机。
2021-05-23 12:37:34
那么,对不起,希望你能找到解决方案:)
2021-05-30 12:37:34
我正在尝试在模拟器中运行该应用程序
2021-06-10 12:37:34
是的,但由于它似乎是相同的错误,因此可能是相同的解决方案。
2021-06-14 12:37:34

我有同样的问题,我的解决方法是运行

$ react-native start

在后台然后运行

$ react-native run-android
这个对我有用。我正在使用 ubuntu 16.04。我在终端中运行 start 命令,在另一个终端中运行 run-android。
2021-06-01 12:37:34
我的问题解决了。完美运行。在终端运行命令的一个选项卡中:react-native start 和在其他选项卡中运行命令:react-native run-android
2021-06-18 12:37:34

据我说,这个错误发生在:

1)您没有在正确的位置运行打包程序,即您打错了运行 react-native packager 的文件夹,因此只需导航到您的项目目录并运行react-native start.

2) 当您对 Appregistry module编写错误代码时。

3) 关闭所有 Xcode、打包程序、模拟器等,然后重新启动。

4)从错误中我想到一件事是module的名称

AppRegistry.registerComponent('AppName', () => componentName)

matches with the @"AppName" on your AppDelegate.m on the call for

[[RCTRootView alloc] initWithBundleUrl:...
                            moduleName:@"AppName"
                         launchOptions:...

5) 因为我们使用的是 react 的组件,所以我们需要给我们的类名的第一个字符加上大写。

6)让我们来看看什么是错的index.android.js,并index.ios.js

干杯:)

@Codesingh 感谢您的回复。我按照您的评论检查了所有内容。但它不起作用。我遇到了同样的错误。我的 index.android.js 文件是gist.github.com/GopeshMedayil/eab9ba6c3b31c3798eb083b0cb0ccc93
2021-05-24 12:37:34
我已经用大写字母更新了它,但没有用。更新的要点gist.github.com/GopeshMedayil/eab9ba6c3b31c3798eb083b0cb0ccc93
2021-05-24 12:37:34
react-native start在我的情况下,通过显示实际错误是什么来帮助我(ENOSPC),然后我像这样修复了然后我不得不重新运行react-native run-android几次,然后react-native start在不同的终端中运行,最终它起作用了。
2021-06-09 12:37:34
您的class名称不以大写字母开头,因此使其正确可能会起作用..
2021-06-11 12:37:34

最后,我让它工作了。我创建了一个新的 AVD

Nexus6 API 23

.Earlier我,试图Nexus5x API 23个.Thanks所有

我对 Nexus6 API 23 有同样的问题,我已经像这样修复了它
2021-06-10 12:37:34
你好。我知道这是一个老问题,但我有同样的问题。你能解释一下这是如何解决问题的吗
2021-06-11 12:37:34

我有同样的问题。碰巧 McAffee 在端口 8081 上并阻止打包程序。我的解决方案:

react-native start --port your_port

在安卓模拟器中,Command + M 显示开发菜单,点击“开发设置”,然后点击“调试服务器主机和端口”并将其设置为 your_ip:your_port。

然后

react-native run-android