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 ,并没有菜单选项,无论如何,这是对我工作的答案的总结:

  1. 创build项目$ react-native init MyProject $ cd MyProject/

  2. 在第一个控制台选项卡中运行,并在开发时保持运行( react-native start备用): $ npm start

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

  4. 修复ReferenceError: Can't find variable: __fbBatchedBridge

    • 通过在Linux / Mac上执行ifconfig来查找本地IP地址,例如: inet addr:192.168.0.3
    • 摇动设备,看看菜单选项,而应用程序正在运行(如果你没有“菜单”button)
    • 进入Dev Settings – > Debug server host & port for deviceDebugging部分,并复制您的本地IP地址与特定的端口: 192.168.0.3:8081 : 192.168.0.3:8081 (从第一个标签运行npm start时可以查看端口),然后去/按Back
    • 摇动设备以再次查看菜单选项,然后按Enable Live Reload (在编辑时查看实时更改)
    • 摇动设备再次看到菜单选项,然后按Reload JS

这根据文档工作

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

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

让您的设备通过USB连接,启用debuggingfunction(请参阅上文有关如何在设备上启用USBdebugging的段落)。

  1. 运行adb reverse tcp:8081 tcp:8081

您可以使用Reload JS和其他开发选项,不需要额外的configuration

  1. 然后运行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"];