Expo React Native蓝牙模块构建失败:权限与Manifest命名空间问题
解决Expo React Native蓝牙模块的权限与清单文件错误
1. 先修复AndroidManifest.xml的命名空间错误
你当前的清单文件有两处关键错误:
<manifest>标签缺少Android命名空间声明,必须加上xmlns:android="http://schemas.android.com/apk/res/android"<uses-permission>的属性应该是android:name,不是name——所有Android专属属性都需要带android:前缀
正确的清单文件开头结构如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <!-- 其他权限或配置写在这里 --> </manifest>
2. 补全蓝牙所需的完整权限
Android 12+(API 31)对蓝牙权限做了拆分,仅添加BLUETOOTH_CONNECT不足以覆盖所有场景,需根据功能补全:
- 若需要扫描蓝牙设备,添加
BLUETOOTH_SCAN;如果涉及后台扫描,还要补充旧版本的定位权限:
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30" />
- 兼容Android 11及以下版本,需添加传统蓝牙权限:
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
- 可选:添加蓝牙功能声明,帮助应用在应用商店正确分类:
<uses-feature android:name="android.hardware.bluetooth" android:required="false" /> <uses-feature android:name="android.hardware.bluetooth_le" android:required="false" />
3. 代码层面需动态请求权限
清单声明只是静态配置,Android 12+必须在运行时让用户主动授予权限,才能调用蓝牙相关功能。在你的模块代码中添加权限检查逻辑:
private val REQUEST_BLUETOOTH_PERMISSIONS = 1001 // 调用蓝牙启用意图前先检查权限 fun checkBluetoothPermissions() { val requiredPermissions = arrayOf( Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN ) val missingPermissions = requiredPermissions.filter { ContextCompat.checkSelfPermission(AppActivity!!, it) != PackageManager.PERMISSION_GRANTED } if (missingPermissions.isNotEmpty()) { ActivityCompat.requestPermissions(AppActivity!!, missingPermissions.toTypedArray(), REQUEST_BLUETOOTH_PERMISSIONS) } else { // 权限已授予,启动蓝牙启用意图 val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) AppActivity?.startActivityForResult(enableBtIntent, ACTION_REQUEST_ENABLE) } }
- 只有用户同意权限后,再执行启动蓝牙的代码,才能避免最初的权限缺失错误。
内容的提问来源于stack exchange,提问作者CodeNebulaWizard
相关产品推荐
相关产品推荐

