1.React-native Cannot find module 'invariant'
当你执行命令 react-native init AwesomeProject
想要新建一个项目时遇到这个问题,则是因为你的npm版本没有适配最新的RN要求。
解决办法:npm install -g npm
更新npm后即可 npm -v
可查询npm版本
2.Invariant Violation:Application xxx has not been registered.
情况一:首先确定你没有在运行其他的RN项目,否则端口被占用是没法注册成功的
情况二:你真的注册失败了
检查目录下的index.ios.js
中
AppRegistry.registerComponent('xxx',() => ...);
与iOS项目文件目录下的appDelegate.m
中
RCTRootView*rootView =[[RCTRootViewalloc]initWithBundleURL:jsCodeLocation
moduleName:@"xxx" launchOptions:launchOptions];
或是android工程文件下的MainActivity.java
中
mReactRootView.startReactApplication(mReactInstanceManager, "xxx", null);
没有保持一致
解决方法:xxx
统一为你的项目名称即可。
3.遇到旧项目中库的函数返回值不对时,位于RCTSRWebSocket.m
Paste_Image.png替代为下面的代码:
int result = SecRandomCopyBytes(kSecRandomDefault, keyBytes.length, keyBytes.mutableBytes);
assert(result == 0);
屏幕快照 2017-02-22 下午5.36.59.png
替代为下面的代码:
(void)SecRandomCopyBytes(kSecRandomDefault, sizeof(uint32_t), (uint8_t *)mask_key);
网友评论