uniapp 本地离线打包提示未添加蓝牙模块如何解决?

在uniapp本地离线打包时,提示“未添加蓝牙模块”应该怎么解决?我已经按照文档配置了manifest.json文件,添加了蓝牙权限和模块声明,但打包后依然报错。请问是否需要额外引入SDK或修改gradle配置?有没有完整的解决方案或步骤说明?

2 回复

在HBuilderX中,点击manifest.json,找到“App模块配置”,勾选“蓝牙”模块,重新打包即可。


在 UniApp 本地离线打包时提示“未添加蓝牙模块”,通常是因为未在原生平台配置蓝牙权限或模块依赖。以下是针对 Android 和 iOS 平台的解决方案:

Android 解决方案

  1. 添加蓝牙权限

    • 打开 Android 项目中的 AndroidManifest.xml 文件。
    • <manifest> 标签内添加以下权限:
      <uses-permission android:name="android.permission.BLUETOOTH" />
      <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
      
      注意:Android 6.0+ 需要动态申请位置权限,因为蓝牙扫描依赖位置服务。
  2. 配置模块依赖

    • 如果使用 HBuilderX 离线 SDK,确保在 build.gradle 中添加必要的蓝牙依赖(通常 UniApp SDK 已包含,但可检查是否缺失)。
  3. 重新编译

    • 清理并重建项目(例如在 Android Studio 中选择 Build > Clean ProjectBuild > Rebuild Project)。

iOS 解决方案

  1. 添加蓝牙权限

    • 在 Xcode 中打开项目,找到 Info.plist 文件。
    • 添加以下键值对:
      <key>NSBluetoothAlwaysUsageDescription</key>
      <string>应用需要使用蓝牙以连接外部设备</string>
      <key>NSBluetoothPeripheralUsageDescription</key>
      <string>应用需要使用蓝牙以连接外部设备</string>
      
      注意:iOS 13+ 需使用 NSBluetoothAlwaysUsageDescription
  2. 启用蓝牙能力

    • 在 Xcode 中,进入项目的 Signing & Capabilities 选项卡。
    • 点击 + Capability,添加 Background Modes,并勾选 Uses Bluetooth LE accessories(如果应用需后台运行蓝牙)。
  3. 重新打包

    • 清理项目(Product > Clean Build Folder)后重新编译。

通用检查步骤

  • 确认 UniApp 配置:在 manifest.jsonApp模块配置 中确保已勾选 Bluetooth(云打包需此步骤,离线打包依赖原生工程)。
  • 测试设备:确保手机蓝牙功能正常,并开启蓝牙。
  • 查看日志:检查原生平台(如 Android Studio 或 Xcode)的控制台日志,定位具体错误。

按照以上步骤操作后,重新打包应用即可解决蓝牙模块未添加的问题。如果问题持续,检查 UniApp 官方文档或社区寻求特定 SDK 版本的帮助。

回到顶部