表盘编辑报错

表盘编辑、应用、预览过程中可能出现的报错及说明

本文档汇总 AstroBox 在表盘编辑、自定义文本、字体选择、应用等流程中可能向用户展示的报错信息。


一、Toast 弹窗报错

表盘编辑页面

触发位置消息 Key说明
pages/device/watchfaceEdit.tsx:1071device.watchfaces.edit.text.invalid文本验证失败
pages/device/watchfaceEdit.tsx:1113device.watchfaces.edit.text.fontMissing文本字面量多字体或无字体
pages/device/watchfaceEdit.tsx:1143device.watchfaces.edit.applied表盘编辑应用成功
pages/device/watchfaceEdit.tsx:1147device.watchfaces.edit.applyFailed表盘编辑应用失败
pages/device/watchfaceEdit.tsx:1230device.watchfaces.edit.text.fontReadFailed字体文件读取失败

二、Rust 后端返回错误

表盘列表与应用

位置错误消息触发条件
frontapi/device/watchface.rs:10format_anyhow(&err)获取表盘列表失败
frontapi/device/watchface.rs:19format_anyhow(&err)应用表盘失败
frontapi/device/watchface.rs:27format_anyhow(&err)反编译表盘失败

表盘编辑核心

位置错误消息触发条件
watchface_edit/commands.rs:126err.to_string()表盘归档解析错误
watchface_edit/commands.rs:197format!("{err:#}")表盘反编译错误
watchface_edit/commands.rs:245join parse task: {err}异步解析 join 错误
watchface_edit/commands.rs:265format!("{err:#}")表盘应用错误

三、队列内嵌报错(progressDesc)

表盘安装任务若失败,taskList.ts 会将错误写入 progressDesc

  • queue.watchfaceIdConflict — 表盘 ID 冲突/降级冲突
  • resource.unknown.type — 文件类型未知
  • device.connect.noDevice — 安装时无设备连接

四、WASM / 逻辑层抛错

位置错误消息触发条件
logic/fontSubset.ts:67subsetFont: empty text字体子集文本为空
logic/fontSubset.ts:86hb_subset_input_create_or_fail failedHarfBuzz 输入创建失败
logic/fontSubset.ts:92hb_subset_or_fail failed (font unsupported?)HarfBuzz 子集失败
logic/fontSubset.ts:97subset produced empty font字体子集结果为空

五、常见排查建议

报错建议操作
device.watchfaces.edit.text.invalid检查文本内容是否符合表盘规范
device.watchfaces.edit.text.fontMissing确保只选择了一种字体,或选择有效字体
device.watchfaces.edit.text.fontReadFailed确认字体文件未损坏,尝试更换字体文件
device.watchfaces.edit.applyFailed检查设备连接状态,确认表盘文件完整
queue.watchfaceIdConflict确认是否覆盖安装,或更换不同 ID 的表盘
hb_subset_or_fail failed字体文件可能不兼容,尝试使用标准 TTF/OTF 字体
subset produced empty font确认文本内容不为空,且字体支持对应字符

大纲