You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中react-native-ble-plx创建BleManager实例报错求助

解决 react-native-ble-plx 创建 BleManager 实例时的 TypeError 问题

问题场景

我在React Native项目的App.js中调用react-native-ble-plx库,执行代码this.manager = new BleManager();时,抛出了如下错误:

TypeError: undefined is not an object (evaluating '_BleModule.BleModule.createClient')

错误栈信息如下:

in DashboardScreen (at App.js:17) in App (at withExpoRoot.js:22) in RootErrorBoundary (at withExpoRoot.js:21) in ExpoRootComponent (at renderApplication.js:34) in RCTView (at View.js:44) in RCTView (at View.js:44) in AppContainer (at renderApplication.js:33) - node_modules/react-native-ble-plx/src/BleManager.js:91:14 in BleManager * screens/DashboardScreen.js:15:19 in scanAndConnect * screens/DashboardScreen.js:55:4 in render - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:10563:21 in finishClassComponent - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:14091:21 in performUnitOfWork - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:14129:41 in workLoop - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:14226:15 in renderRoot - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:15193:17 in performWorkOnRoot - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:15090:24 in performWork - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:15047:14 in performSyncWork - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:14925:19 in requestWork - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:14711:16 in scheduleWork - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:15429:15 in scheduleRootUpdate - node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:16142:20 in render - node_modules/react-native/Libraries/ReactNative/renderApplication.js:59:52 in renderApplication - node_modules/react-native/Libraries/ReactNative/AppRegistry.js:101:10 in run - node_modules/react-native/Libraries/ReactNative/AppRegistry.js:195:26 in runApplication - node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:349:47 in __callFunction - node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:106:26 in <unknown> - node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:297:10 in __guard - node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:105:17 in callFunctionReturnFlushedQueue * [native code]:null in callFunctionReturnFlushedQueue

环境版本信息

  • node v10.16.0
  • npm 6.9.0
  • expo ^32.0.0
  • expokit ^32.1.1
  • react-native-ble-plx 1.0.3
  • react-native-cli 2.0.1
  • react-native 0.57.1

问题原因与解决方案

经过团队排查,确定该错误的核心原因是Expo与react-native-ble-plx存在兼容性冲突。react-native-ble-plx需要直接调用原生模块的接口,而Expo的封装环境限制了对这些原生模块的访问,导致_BleModule.BleModule.createClient无法被正确识别,从而抛出类型错误。

解决方法是:切换到纯React Native项目(使用metro bundler),脱离Expo环境后,react-native-ble-plx就能正常初始化BleManager实例了。

注意事项

如果你的项目基于Expo,在选择BLE相关依赖库时一定要留意兼容性:react-native-ble-plx目前无法在Expo环境中正常工作,建议使用Expo官方提供的BLE相关API,或者切换到纯React Native项目来使用react-native-ble-plx。

内容的提问来源于stack exchange,提问作者Jose Tello V.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:15:51