首先,我不知道反应,但我认为部署到iOS设备而不是模拟器对文档来说不会太难.他们有点稀疏,但我到了某个地方,现在我被卡住了.我创建了一个main.jsbundle并将其添加到Xcode项目中并取消注释AppDelegate.m中的行.
当我部署它时,我收到此错误:
2015-03-26 16:13:08.538 AwesomeProject[4753:2477032] >
RCTJSLog> "Running application "AwesomeProject" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF"
2015-03-26 16:13:08.547 AwesomeProject[4753:2477032] >
RCTJSLog> "Error:
stack:
runApplication main.jsbundle:33769
jsCall main.jsbundle:7157
_callFunction main.jsbundle:7404
applyWithGuard main.jsbundle:877
guardReturn main.jsbundle:7206
callFunctionReturnFlushedQueue main.jsbundle:7413
URL: file:///private/var/mobile/Containers/Bundle/Application/DBC0DAF4-B568-4CF5-B156-9EFEE4E7FF4A/AwesomeProject.app/main.jsbundle
line: 1536
message: Invariant Violation: Application AwesomeProject has not been registered."
2015-03-26 16:13:08.723 AwesomeProject[4753:2477032] >
RCTJSLog> "#CLOWNTOWN (error while displaying error): Network request failed"
Run Code Online (Sandbox Code Playgroud)
xan*_*ont 124
我很确定@ krazyeom的修复与此错误无关.在我的情况下,我通过退出从我以前运行的测试应用程序运行的终端来修复此问题.终端似乎很困惑,并且仍然挂钩了一个进程,其项目不再在XCode中加载.请尝试以下方法:
tad*_*llo 52
您的问题不应该与控制台有任何关系,如果您正确地将您的javascript捆绑到ios应用程序中它不会尝试与开发服务器交谈,它只会从包中获取javascript.
从错误消息我猜你可能已经重命名了你的主要组件.确保'AppName'你进入了
AppRegistry.registerComponent('AppName' /* <- */, ... )
与@"AppName"你AppDelegate.m的电话匹配
[[RCTRootView alloc] initWithBundleUrl:...
moduleName:@"AppName" // <-
launchOptions:...
Run Code Online (Sandbox Code Playgroud)
小智 26
这是因为本地反应服务器仍在观看旧服务器.您需要先关闭服务器.
你可以杀死这个过程.
在终端
ps aux | grep react
Run Code Online (Sandbox Code Playgroud)
杀死或杀死该过程然后
npm start
Run Code Online (Sandbox Code Playgroud)
alu*_*cic 19
AppRegistry定义应用程序的入口点并提供根组件.
您的第一个参数与您的项目名称不符.
AppRegistry.registerComponent('AwesomeProject', () => YourMainComponent);
Run Code Online (Sandbox Code Playgroud)
第一个参数registerComponent必须是您的项目名称,第二个参数是匿名函数,它返回您的根反应组件.
如果第一个参数与xcode项目名称不匹配,则会出现应用程序尚未注册的错误.
如果你在范围内没有AppRegistry,你可以像这样调用它,
React.AppRegistry.registerComponent或者你可以将它分配给AppRegistryvar
var {
AppRegistry
} = React;
Run Code Online (Sandbox Code Playgroud)
小智 13
重命名项目名称和几个文件后,我遇到了这个问题。要解决它,只需确保 index.js app.json、MainActivity.java 和 AppDelegate.m 中应用程序的名称相同。
应用程序.json
{ "name": "MyNewApp", "displayName": "MyNewApp" }
Run Code Online (Sandbox Code Playgroud)
索引.js
AppRegistry.registerComponent('MyNewApp', () => MyNewApp);
主活动.java
`@Override protected String getMainComponentName() {
return "MyNewApp"; }
Run Code Online (Sandbox Code Playgroud)
小智 12
AppRegistry.registerComponent('abc',() => ***);
Run Code Online (Sandbox Code Playgroud)
在'abc'必须相同moduleName:@'abc'的文件名AppDelegate.m
小智 8
我遇到过同样的问题.我通过给AppDelegate的moduleName和AppRegistry.registerComponent提供相同的名称来解决它
如果您正在运行应用程序,$ react-native run-ios则需要重命名该moduleName字段./ios/[project name]/AppDelegate.m以匹配项目的新名称.刷新手机模拟器,它应显示新代码.
您是否更改了您正在注册的应用程序的名称?我启动了名为'tricky'的应用程序,然后更改了此行中的名称:
AppRegistry.registerComponent('MyNewApp', () => MyNewApp);
Run Code Online (Sandbox Code Playgroud)
我开始得到不变的错误.
| 归档时间: |
|
| 查看次数: |
38729 次 |
| 最近记录: |