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

Android Studio出现Type mismatch错误 Kotlin蓝牙设备列表开发求助

Error报错截图
代码实现截图

问题排查&修复方案

以下是蓝牙列表开发场景下Type mismatch(类型不匹配)报错的常见原因和对应修复方案,按优先级逐一排查即可:

  • 可空/非空类型不匹配
    蓝牙扫描回调返回的BluetoothDevice实例默认可空,如果你声明的设备列表变量是MutableList<BluetoothDevice>(元素非可空),直接添加元素就会触发类型不匹配。
    修复示例:
    // 声明存储非空蓝牙设备的列表
    val deviceList: MutableList<BluetoothDevice> = mutableListOf()
    // 添加元素前先做非空校验
    scannedDevice?.let { safeDevice ->
        deviceList.add(safeDevice)
    }
    
  • 集合类型不匹配
    给列表Adapter传参时,如果你传入的是List<BluetoothDevice>类型,但Adapter构造函数要求的是ArrayList<BluetoothDevice>类型,也会触发报错。
    修复方案:统一两边的类型声明,或者做显式类型转换:
    val deviceAdapter = DeviceAdapter(deviceList as ArrayList<BluetoothDevice>)
    
  • API版本不匹配
    检查你项目的compileSdk、targetSdk版本和教程使用的版本是否一致,Android 12及以上版本的蓝牙相关API返回类型、入参要求都有调整,即便代码写法完全一致也可能出现类型不匹配问题,对齐SDK版本即可解决。
  • 权限回调类型不匹配
    动态申请蓝牙权限时,如果回调参数的类型和官方要求的Map<String, Boolean>不一致,也会触发该报错,直接对齐官方文档的回调声明即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:06:07