'use strict';
import {
AppRegistry
} from 'react-native';
import app from "./app";
AppRegistry.registerComponent('test', () => app);
3
该问题也将出现 when, in index.js, you have named the app differently from the name you gave it for the android/ios package ;可能这发生在您弹出应用程序时 . 所以请确保在调用 AppRegistry.registerComponent('someappname', () => App) 时,someappname也用于本机包或反之亦然 .
303
我认为节点服务器正在从另一个文件夹运行 . 所以杀了它并在当前文件夹中运行 .
Find running node server:-
lsof -i :8081
Kill running node server :-
kill -9 <PID>
例如:-
kill -9 1653
Start node server from current react native folder:-
在 windows power shell 中,当您想通过执行以下命令运行应用程序(首次启动电脑后),
react-native run-android
它在另一个 console panel 中启动 node process/JS server ,您不会遇到此错误 . 但是,当你想运行 another app 时,你 must 需要已经运行 JS server console panel 的 close . 然后从 power shell 为另一个应用执行相同的命令,该命令将自动为此应用启动另一个 new JS server ,您将不会遇到此错误 .
您无需关闭并重新打开 power shell 以运行其他应用程序,您需要 closenode console 来运行另一个应用程序 .
17 回答
我想这是由于不匹配项目名称和您注册的组件而导致的错误 .
你有一个名字inited项目,即
react-native init AwesomeApp
但是在index.ios.js文件中,您注册了其他组件
AppRegistry.registerComponent('Bananas', () => Bananas);
必须的时候
AppRegistry.registerComponent('AwesomeApp', () => Bananas);
尝试解决它 .
大多数情况下,问题是您有另一个
react-native start
(即React Native Packager)服务器在另一个终端或TMUX的另一个选项卡上运行(如果您使用的是TMUX) .您需要找到该进程并将其关闭,因此在运行
react-native run-ios
之后,它将 Build 一个为该特定应用程序注册的新打包服务器 .只需找到该过程使用:
找到进程ID(PID)并使用
kill
命令(例如kill -9 [PID]
)终止打包程序进程 . 您应该在macOS中找到launchPackager.command
应用程序,不确定其他操作系统 .然后尝试再次运行
run-ios
(或android) . 您应该能够在运行新的打包程序服务器后看到新路径,例如:像这样修改
MainActivity
,首先,您必须开始申请:
然后,您必须将应用程序名称设置为registerComponent的第一个参数 .
它工作正常 .
我的解决方案是“AppDelegate.m”中的更改模块名称
来自
moduleName:@"AwesomeProject"
到
moduleName:@"NewName"
在我的情况下,当我使用
react-native-rename
cli(来自NPM)时,MainActivity.java中出现了这一行显然你必须将它重命名为你的应用程序的名称 .
我有同样的问题,对我来说,根本原因是我从另一个react-native文件夹(AwesomeApp)运行(react-native start)打包器,而我在另一个文件夹中创建了另一个项目 .
从新应用程序的目录运行打包程序解决了它 .
这也可能是由于根组件名称以小写字母开头 .
更正它或者使用PascalCase名称再次创建项目 .
例如点燃新的HelloWord
你需要 register 它在index.android.js / index.ios.js
像这样:
该问题也将出现 when, in index.js, you have named the app differently from the name you gave it for the android/ios package ;可能这发生在您弹出应用程序时 . 所以请确保在调用
AppRegistry.registerComponent('someappname', () => App)
时,someappname也用于本机包或反之亦然 .我认为节点服务器正在从另一个文件夹运行 . 所以杀了它并在当前文件夹中运行 .
Find running node server:-
lsof -i :8081
Kill running node server :-
kill -9 <PID>
例如:-
kill -9 1653
Start node server from current react native folder:-
react-native run-android
请检查项目中的app.json文件 . 如果没有行appKey,那么你必须添加它
而不是更改
AppRegistry
中的名称,运行react-native init Bananas,这将为Bananas项目创建反应样板代码,
AppRegistry.registerComponent
将自动指向香蕉所有给出的答案对我都不起作用 .
我有另一个节点进程在另一个终端运行,我关闭了该命令终端,一切都按预期工作 .
没有解决方案适合我 . 我不得不杀死以下进程并重新运行react-native run-android并且它有效 .
node ./local-cli/cli.js start
我有同样的问题 . 我正在使用Windows为Android创建一个react本机应用程序,并且遇到了同样的错误 . 这是有效的 .
导航到根目录中的文件夹 ANDROID .
创建一个名称为的文件: local.properties
在编辑器中打开它并写:
正常保存并运行应用程序 . 这对我有用 .
我想出了问题所在的位置(Windows 10操作系统),但它也可能对Linux有帮助(你可能会尝试) .
在
windows power shell
中,当您想通过执行以下命令运行应用程序(首次启动电脑后),它在另一个
console panel
中启动node process/JS server
,您不会遇到此错误 . 但是,当你想运行 another app 时,你 must 需要已经运行JS server console panel
的 close . 然后从power shell
为另一个应用执行相同的命令,该命令将自动为此应用启动另一个 new JS server ,您将不会遇到此错误 .您无需关闭并重新打开
power shell
以运行其他应用程序,您需要 closenode console
来运行另一个应用程序 .