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

我想在Android模拟器上运行一个反应原生应用程序,但我得到一个错误

调用Appregistry.runApplication时出错

AVD:“Nexus_5X_API_23(AVD) – 6.0操作系统:Windows 10

在这里输入图像说明

请帮忙吗?

我几乎和前几天有同样的问题。 对我来说这是一个真正的设备。

从我所有的研究中,为我工作的解决scheme如下:

当您通过inputreact-native run-android启动您的应用程序时,会显示错误。

所以,到达你的目录包含“adb.exe”(对于我来说,它是C:\用户\用户名\应用程序数据\本地\安卓\ Sdk \平台工具\)

从这里打开一个terminal。 然后inputadb reverse tcp:8081 tcp:8081

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

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

干杯;)

编辑:

我find了一个更方便的解决scheme来解决这个问题。

当你启动你的“react-native run-android”时,你可能会有一个评论:“adb不被识别为内部或外部命令…”

那么,而不是手动使用adb命令,您可以添加一个环境variables通往adb.exe。

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

从这里点击“环境variables”。 在“系统variables”部分中search“path”variables。 点击它,然后按“编辑”button。

在那里你可以添加一个新的path给这个variables。 只需点击“新build”button,然后编写adb.exepath。 例如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命令将在构build时自动运行。

希望这会更有助于你!

我有同样的问题,我的修复是运行

 $ react-native start 

在后台运行

 $ react-native run-android 

根据我的这个错误来的时候:

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

2)当你对Appregistry模块编写错误的时候。

3)closures所有Xcode,打包机,模拟器等,并重新启动。

4)从错误中我想到的是模块的名字

 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.jsindex.ios.js什么问题

干杯:)

我有同样的问题。 发生这种情况,McAffee是在8081端口和封装包装。 我的解决scheme

 react-native start --port your_port 

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

然后

 react-native run-android 

我有相同的问题,并能够解决它通过设置我的本地计算机作为debugging服务器在Android模拟器。 打开android模拟器, Command + M出一个菜单,然后点击“Dev Settings”,然后点击“Debug server host and port”,并将其设置为127.0.0.1:8081。 然后从你的项目目录运行react-native run-android 。 我希望这有帮助。

最后,我得到了它的工作。我创造了一个新的AVD

Nexus6 API 23

。早先我想用Nexus5x API 23。谢谢大家

确保端口8081可用。 在我的情况下,我的一个服务正在端口8081(tomcat web服务器)上运行。

在我的情况下(当然,经过我在这里和其他地方find的所有东西),我意识到我已经把我的WiFi关掉了。 希望它可以帮助别人

我有完全相同的问题(因为这是一个非常通用的消息),但问题是不同的。 在我的情况下,这是一个新创build的项目,模拟器不工作,但真正的设备工作。

我的问题是观察者inotify可以在Linux上默认处理的限制,这是一个Linux内核子系统,用于扩展文件系统以注意文件系统的变化,并将这些变化报告给应用程序,并广泛使用,包括android studio和反应本土; 当我试图执行react-native run-android所有的观察者被分配在我的系统上,导致进程在这个相同的消息上失败。

要更改inotify可以处理的最大观察者数量,您需要编辑文件sysctl.conf ,该文件通常位于/etc/sysctl.conf/etc/sysctl.d/custom_name.conf并添加以下行:

  fs.inotify.max_user_watches = 5242881 

写入文件后,需要执行sysctl -p filename.conf ,其中'filename.conf'是保存sysctl的.conf文件的path和名称。 一旦应用更改,一切都应按预期工作。

我也有同样的问题。 我解决了在真实设备上运行的问题。

正如Jedi先生所说,McAffee阻塞了端口8081.所以我修改了Project-Folder> \ node_modules \ react-native \ local-cli \ runAndroid \ runAndroid.js文件的function

 function tryRunAdbReverse(device) { try { const adbPath = getAdbPath(); const adbArgs = ['reverse', 'tcp:8081', 'tcp:8081']; 

 function tryRunAdbReverse(device) { try { const adbPath = getAdbPath(); const adbArgs = ['reverse', 'tcp:8081', 'tcp:3040']; 

并开始申请

  react-native start --port 3040 

对我来说,我只需要将平台工具添加到我的Path环境variables,以便react-native可以启动adb服务器。

我得到:

 'adb' is not recognized as an internal tool or program 

为了解决这个问题,我在Path环境variables中添加了以下内容。

 C:\Users\<Username>\AppData\Local\Adnroid\sdk\platform-tools 

然后运行react-native run-android工作!

我知道这个问题已经给出了这么多的答案,但我认为值得添加我的解决scheme,希望这可以帮助那里的人。

在我的情况下,问题是从我的虚拟机,虽然我没有调查,但通过创build一个新的虚拟设备的应用程序运行顺利没有问题。

所以只需创build一个新的虚拟设备。 🙂