ReferenceError:找不到variables:__fbBatchedBridge
使用react-native init AwesomeProject
的默认代码,当我运行应用程序时,出现'ReferenceError:Can not find variable:__fbBatchedBridge(生成的包中的第1行)'。
而且,当我“重新加载JS”时,应用程序只有白色的背景,而不是任何'你好世界'的意见。 我没有触及init的任何代码。
任何想法如何解决错误?
截图(点击查看完整大小):
使用:
- Ubuntu 15.10,64位
- Node.js v5.3.0
- 反应本机v0.1.7
- Nexus 5X,API 6.0.1
当包装工没有开始的时候,我通常会看到这个。 通过运行react-native启动来确保正在运行
我在使用Visual Studio Android模拟器时遇到同样的问题。 当红色屏幕在命令行中显示types时
adb shell input keyevent 82
这将触发震动事件并启动开发菜单
然后点击Dev Settings> Debug server host&port for device,然后input<your ip adress>:8081
。 如果由于某种原因,您无法input字段,则可以使用在命令行中触发文本操作
adb shell input text <your ip adress>:8081
我使用这个命令解决了它
adb reverse tcp:8081 tcp:8081
谢谢rmevans9和Anonsage的回答!
我在Ubuntu上使用HTC One
,并没有菜单选项,无论如何,这是对我工作的答案的总结:
-
创build项目
$ react-native init MyProject $ cd MyProject/
-
在第一个控制台选项卡中运行,并在开发时保持运行(
react-native start
备用):$ npm start
-
在第二个控制台选项卡中编译并安装项目(如果需要,将设备连接到USB):
$ react-native run-android
-
修复
ReferenceError: Can't find variable: __fbBatchedBridge
:- 通过在Linux / Mac上执行
ifconfig
来查找本地IP地址,例如:inet addr:192.168.0.3
- 摇动设备,看看菜单选项,而应用程序正在运行(如果你没有“菜单”button)
- 进入
Dev Settings
– >Debug server host & port for device
在Debugging
部分,并复制您的本地IP地址与特定的端口:192.168.0.3:8081
:192.168.0.3:8081
(从第一个标签运行npm start
时可以查看端口),然后去/按Back
- 摇动设备以再次查看菜单选项,然后按
Enable Live Reload
(在编辑时查看实时更改) - 摇动设备再次看到菜单选项,然后按
Reload JS
- 通过在Linux / Mac上执行
这根据文档工作
http://facebook.github.io/react-native/docs/running-on-device-android.html#content
使用adb reverse请注意,此选项在运行android 5.0+(API 21)的设备上可用。
让您的设备通过USB连接,启用debuggingfunction(请参阅上文有关如何在设备上启用USBdebugging的段落)。
- 运行adb reverse tcp:8081 tcp:8081
您可以使用Reload JS和其他开发选项,不需要额外的configuration
- 然后运行react-native run-android ,如果你的开发机器上的8081端口没有运行,它会自动启动开发服务器。
当我在我的packages.json
和我的build.gradle
文件中指定了不同的反应原生版本时,我遇到了这个问题。 确保它们匹配,运行npm更新,并从android studio重build固定的问题给我。
我有同样的问题。
当我遵循其他答案中提到的所有步骤时,我无法解决问题。
在我的情况下, firewall
阻止来自android的数据包。
另外,如果您已经提交了iTunes商店的应用程序,还请确保您的jsCodeLocation返回到本地主机,如下所示:
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; /** * OPTION 2 * Load from pre-bundled file on disk. The static bundle is automatically * generated by "Bundle React Native code and images" build step. */ //jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];