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

Flutter使用flutter_reactive_ble编译报错android:usesPermissionFlags未找到

错误原因

android:usesPermissionFlags 是Android 12(API 等级31)才新增的系统属性,你当前项目的compileSdkVersion配置为29,低于要求的最低版本,编译时无法识别该属性,因此触发资源链接失败报错。
同时你使用的BLUETOOTH_SCAN权限本身也是Android 12新增的蓝牙权限,flutter_reactive_ble库适配了新版蓝牙权限规则,自动引入了对应属性配置,才会触发该问题。

解决办法
  • 方案1(推荐):升级编译SDK版本
    将android/app/build.gradle中的compileSdkVersion和targetSdkVersion都调整为31或更高版本即可。该方案不会影响低版本设备的正常运行,因为minSdkVersion仍为21,仅在编译阶段使用高版本SDK识别新增属性。
    修改后的配置参考:
    compileSdkVersion 31
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 31
    }
    
  • 方案2:给权限配置添加版本适配标记
    若暂时无法升级编译SDK,可在AndroidManifest.xml中给BLUETOOTH_SCAN权限添加版本适配标记,避免低版本编译时识别未知属性,需要先在manifest根节点添加工具命名空间声明xmlns:tools="http://schemas.android.com/tools",再修改权限配置:
    <uses-permission
      android:name="android.permission.BLUETOOTH_SCAN"
      android:usesPermissionFlags="neverForLocation"
      tools:remove="android:usesPermissionFlags"
      tools:targetApi="s" />
    
    该方案存在副作用:Android 12及以上系统运行时,蓝牙扫描可能会被判定为需要位置权限,兼容性不如方案1。
  • 方案3:降级flutter_reactive_ble版本
    可将flutter_reactive_ble降级到未适配Android 12蓝牙权限的旧版本,该方案会影响新版系统的功能使用,不推荐。

内容的提问来源于stack exchange,提问作者Michał Śniady

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:39:04