ReferenceError:找不到变量:__ fbBatchedBridge

时间:2015-12-28 20:08:50

标签: node.js react-native

仅使用react-native init AwesomeProject中的默认代码,当我运行应用程序时,我得到'ReferenceError:无法找到变量:__ fbBatchedBridge(生成的包中的第1行)'。

而且,当我'重新加载JS'时,应用程序只有白色背景而不是任何“hello world”视图。我没有触及init中的任何代码。

任何想法如何解决错误?

屏幕截图(点击查看完整尺寸):
enter image description here

使用:

  • Ubuntu 15.10,64位
  • Node.js v5.3.0
  • reactive-native v0.1.7
  • Nexus 5X,API 6.0.1

8 个答案:

答案 0 :(得分:33)

当打包器还没有启动时,我通常会看到这个。确保通过运行react-native start

运行

答案 1 :(得分:12)

使用Visual Studio Android Emulator时遇到了同样的问题。当红色屏幕显示命令行中的类型

adb shell input keyevent 82

这将触发摇动事件并启动开发菜单

Developer menu

然后点击Dev Settings&gt;调试服务器主机&amp;设备端口,然后输入<your ip adress>:8081。如果由于某种原因您无法在字段中键入,则可以使用

在命令行中触发文本操作
adb shell input text <your ip adress>:8081

答案 2 :(得分:5)

我用这个命令解决了它

adb reverse tcp:8081 tcp:8081

答案 3 :(得分:3)

谢谢你rmevans9和Anonsage的答案!

我在Ubuntu上使用DomainStart = Datetime.now并且没有菜单选项,无论如何这是对我有用的答案摘要:

  1. 创建项目 HTC One

  2. 在第一个控制台选项卡中运行并在开发时保持运行( $ react-native init MyProject $ cd MyProject/ 替代): react-native start

  3. 在第二个控制台选项卡中编译并安装项目(如果需要,将设备连接到USB): $ npm start

  4. 修复$ react-native run-android

    • 在Linux / Mac上执行ReferenceError: Can't find variable: __fbBatchedBridge查找本地IP地址,例如: ifconfig
    • 在应用程序运行时摇动设备以查看菜单选项(如果您没有“菜单”按钮)
    • 转到inet addr:192.168.0.3 - &gt; Dev Settings部分中的Debug server host & port for device并使用特定端口复制您的本地IP地址: Debugging(从第一个标签运行192.168.0.3:8081时可以查看该端口) 然后转到/按npm start
    • 摇动设备以再次查看菜单选项并按Back(以便在编辑时查看更改)
    • 摇动设备以再次查看菜单选项,然后按Enable Live Reload

答案 4 :(得分:2)

根据文件

,这对我有用

http://facebook.github.io/react-native/docs/running-on-device-android.html#content

使用adb reverse 请注意,此选项在运行android 5.0+(API 21)的设备上可用。

在启用调试的情况下通过USB连接设备(请参阅上面有关如何在设备上启用USB调试的段落)。

  1. 运行 adb reverse tcp:8081 tcp:8081
  2. 您可以使用Reload JS和其他开发选项而无需额外配置

    1. 然后运行 react-native run-android ,如果尚未运行,将自动启动dev机器上8081端口上的dev服务器。

答案 5 :(得分:1)

当我在packages.jsonbuild.gradle文件中指定了不同的本机版本时,我遇到了这种情况。确保它们匹配,运行npm更新,并从android studio重建为我修复了这个问题。

答案 6 :(得分:1)

我遇到了同样的问题。

当我按照其他答案中提到的所有步骤进行操作时,我无法解决问题。

在我的情况下,firewall阻止来自android的数据包。

答案 7 :(得分:0)

此外,如果您已经为iTunes商店提交了应用程序,还要确保您的jsCodeLocation返回到localhost,如下所示:

  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"];