设备连接报错

设备连接过程中可能出现的报错及说明

本文档汇总 AstroBox 在设备连接全流程中可能向用户展示的报错信息,包括 Toast 弹窗、队列内嵌错误、Rust 后端返回错误及逻辑层抛错。


一、Toast 弹窗报错

无可用设备

触发位置消息 Key说明
logic/deviceConnectionGuard.tsdevice.connect.noDevice当前无已连接设备时触发,多处调用(队列安装、音乐导入、传输诊断、日志获取等)
logic/queue/installhelper.ts:262device.connect.noDevice安装任务创建时检测到无设备
logic/queue/musichelper.ts:120device.connect.noDevice音乐上传任务创建时检测到无设备
pages/settings/extratools.tsxdevice.noDevice打开设备信息、开始/停止抓包、运行冒烟测试、获取日志时无设备

连接失败

触发位置消息说明
logic/device.ts:233device.connect.fail: ${message}device.connect.fail连接设备失败(排除 iOS TargetRejected 情况)
components/nav/NavDeviceCard.tsx:110device.wasm.missingAuthWASM 运行时缺少 Authkey

二、Rust 后端返回错误

蓝牙扫描

位置错误消息触发条件
frontapi/bluetooth.rsScanError::AdapterNotFound开始/停止扫描时未找到蓝牙适配器

设备连接核心

位置错误消息触发条件
frontapi/device.rs:493蓝牙连接错误详情设备连接时蓝牙层失败
frontapi/device.rs:520format_anyhow(&err)设备连接通用失败(含完整错误链)
frontapi/device.rs:524Device connect failed设备连接失败
frontapi/device.rs:528Device connect canceled用户主动取消连接
frontapi/device.rs:532Device connect timed out设备连接超时

SPP 插件层连接错误

平台错误消息触发条件
btclassic-spp/macosConnection closed连接关闭
btclassic-spp/macosRFCOMM send already in progressRFCOMM 发送冲突
btclassic-spp/macosRFCOMM send timed outRFCOMM 发送超时
btclassic-spp/macosRFCOMM channel disconnectedRFCOMM 通道断开
btclassic-spp/winSocket error: {code}Socket 错误
btclassic-spp/winConnection closed by peer对端关闭连接
btclassic-spp/winBluetooth is not available蓝牙不可用
btclassic-spp/winNo Bluetooth adapter found未找到蓝牙适配器
btclassic-spp/linuxConnection closed / BlueZ/DBus 错误Linux 蓝牙连接错误
btclassic-spp/desktop.rscorelib::anyhow_site!(...)桌面端 SPP 错误转发
btclassic-spp/mobile.rsDeserialize error from mobile: {e}移动端数据反序列化失败
btclassic-spp/mobile.rs{err_msg} (Android msg.err)SPP 读取错误
btclassic-spp/mobile.rsBase64 decode error from mobile: {e}Base64 解码失败

三、WASM / 逻辑层抛错

位置错误消息触发条件
ipc/wasmBridge.ts:9WASM bridge requested outside wasm runtime非 WASM 环境调用 WASM bridge
ipc/wasmBridge.ts:170Unsupported command in wasm runtime: {command}WASM 不支持该命令

四、队列内嵌报错(progressDesc)

连接相关错误被 taskList.ts 捕获后,以红色文字写入任务卡片的 progressDesc

  • device.connect.noDevice — 常见于安装/音乐任务开始时检测到无设备连接

五、常见排查建议

报错建议操作
device.connect.noDevice确保设备已连接,检查设备卡片状态
Device connect timed out检查设备是否处于「连接新手机」状态,确认蓝牙权限已授予
Device connect canceled重新点击连接,避免操作过程中切换页面
ScanError::AdapterNotFound检查设备蓝牙是否开启,桌面端检查蓝牙驱动/权限
RFCOMM channel disconnected (macOS)忽略设备后重新配对,或重启 AstroBox
TargetRejected (iOS)前往系统设置-蓝牙中忽略对应设备后重试
device.wasm.missingAuthWASM 模式下确保已填写 Authkey/OpenID

大纲