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

Expo中使用react-native-ble-plx实例化BleManager报TypeError

解决react-native-ble-plx在Expo项目中实例化报错的问题

1. 先排除Web端适配问题

react-native-ble-plx本身没有Web端适配,绝对不要用npx expo start --web启动项目,Web环境下这个库完全无法工作,直接聚焦iOS/Android平台调试。

2. 处理Expo环境的原生模块支持问题

Expo Go(即直接用npx expo start启动的沙盒环境)不包含react-native-ble-plx的原生代码,必须通过预构建或开发构建来集成原生模块:

步骤1:安装适配Expo的依赖

确保安装库本身和Expo配置插件:

npx expo install react-native-ble-plx expo-build-properties

步骤2:配置项目权限与原生参数

在app.json或app.config.js中添加以下配置,确保蓝牙权限和原生版本兼容:

{
  "expo": {
    "plugins": [
      [
        "expo-build-properties",
        {
          "android": {
            "minSdkVersion": 23,
            "compileSdkVersion": 33,
            "targetSdkVersion": 33
          },
          "ios": {
            "deploymentTarget": "12.0"
          }
        }
      ]
    ],
    "ios": {
      "infoPlist": {
        "NSBluetoothAlwaysUsageDescription": "需要蓝牙权限连接BLE设备",
        "NSBluetoothPeripheralUsageDescription": "需要蓝牙权限连接BLE设备"
      }
    },
    "android": {
      "permissions": [
        "BLUETOOTH",
        "BLUETOOTH_ADMIN",
        "BLUETOOTH_CONNECT",
        "BLUETOOTH_SCAN",
        "ACCESS_FINE_LOCATION"
      ]
    }
  }
}

步骤3:生成原生项目文件

运行命令生成iOS和Android的原生目录,让Expo集成react-native-ble-plx的原生代码:

npx expo prebuild

步骤4:用本地构建启动项目

放弃Expo Go,直接用模拟器或真机启动:

  • iOS平台:
npx expo run:ios
  • Android平台:
npx expo run:android

3. 优化代码中的实例逻辑

添加平台判断,避免在Web环境下错误实例化:

import { Platform } from 'react-native';
import { BleManager } from 'react-native-ble-plx';

let bleManager;
if (Platform.OS !== 'web') {
  bleManager = new BleManager();
}

4. 排查常见冲突问题

  • 克隆的项目先删除node_modules、package-lock.json/yarn.lock,重新执行npx expo install,避免依赖版本冲突。
  • 确认Expo SDK版本与react-native-ble-plx兼容,比如Expo SDK 49+对应react-native-ble-plx 2.0.0+版本。
  • Android设备需同时开启蓝牙和定位权限(BLE扫描依赖定位权限),iOS需在系统设置中允许APP的蓝牙权限。

内容的提问来源于stack exchange,提问作者Moineau _

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:47:08