正常的首次启动会解包运行环境、拉起 Harness,然后加载 DSH 选项卡。顺序一旦被打断,
原因往往只有几种,且大多能在应用里直接看到。先看症状,不要一上来就重装。
先看排查表
症状决定先查哪一层。下表只是起点,不是诊断结论,后文会逐行展开。
|
| | 症状 | 可能原因 | 先查什么 |
| 卡在初始化 | 网络中断、空间不足、分层装配被打断 | 诊断日志与剩余空间 |
| 显示“环境就绪”,DSH 选项卡却空白 | WebView 渲染问题,或未配置模型服务商 | WebView 指纹、外部浏览器 |
| 系统浏览器提示连接被拒绝 | 运行时没在跑,或浏览器不在手机上 | 首页的状态与运行时长 |
| 3080 端口被占用 | 上一次启动留下的残留进程 | 停止运行时后重新启动 |
| 导入的文件看不到 | 导入到了别处,或列表未刷新 | 文件选项卡,然后重新打开 |
卡在初始化
首次启动需要网络。运行层随 APK 一起提供,但初始化仍要把它们解包到应用私有目录,
并逐层对照 SHA-256 标记做校验。初始化完成后运行环境约 193 MB,解包过程还需要额外余量。
- 确认网络。移动网络在解包中途断开时,换稳定的 Wi-Fi 重试,别盯着不动的进度条。
- 检查空间。初始化后约占 193 MB,解包时需要的空间还要更多。
- 让它跑完。中途强制结束过,就重新执行初始化,而不是反复点按按钮。
“诊断与日志”保留沙箱日志的最后 150 行,能看到分层装配与校验的记录。某一层没有通过标记校验,
初始化就不会报告“环境就绪”,线索就在这里。
环境就绪,DSH 选项卡却空白
这是同一种症状下的两种故障:Harness 没提供页面,或 WebView 渲染不了它。
用“外部浏览器”选项在系统浏览器里打开 WebUI:能打开,说明服务正常,问题在 WebView,
诊断与日志会给出 WebView 指纹和 CSS 能力探测结果;哪里都打不开,则是运行时或 Harness 的问题。
还有第三种情况:界面能加载,但会话无法回答,因为还没配置模型服务商。先在 DSH 里配好服务商,
再判断选项卡是不是“坏了”。WebView 的已知限制见
《WebView 兼容性》。
3080 端口、残留进程与后台限制
WebUI 只监听 http://127.0.0.1:3080,仅限本机回环。所以电脑浏览器提示
“连接被拒绝”很正常:这个端口不对外,原因见
《3080 上的本地服务》。请在手机上测试;手机浏览器也拒绝,
说明运行时没在跑,或者上一次启动的残留进程还占着端口。回首页停止运行时,再重新启动。
DSHBox 用前台服务承载沙箱,切到后台会话仍可继续。但它仍是普通安卓应用:关闭应用,
运行时就会结束,激进的省电策略也可能把服务停掉。使用中运行时消失,先检查应用的电池设置,
再怀疑是 bug;细节见《安卓后台限制》。
导入、解压与空间不足
通过系统文件选择器导入的文件会复制进 user-data/,在访客系统里对应
/root/projects。导入成功却看不到,先重新打开“文件”选项卡,不要急着重导——
多半只是列表没刷新,文件没丢。解压失败通常是压缩包损坏或空间不够。初始化也可能因空间不足而失败:
应用要同时容纳运行层、解包后的运行时和你的项目。“存储与清理”会显示空间被什么占用;
哪些能安全删除,见《存储与备份》。
安全恢复,以及何时提 issue
由外向内逐级处理,运行时恢复正常就停下。
- 记下首页状态与运行时长,确认运行时在跑。
- 停止运行时,再启动。
- 重启应用;服务起不来时重启设备。
- 在设置里重新执行初始化。
- 怀疑某一层损坏,就重新导入运行时包。导入会校验分层并保留
previous/
副本以便回滚,用户数据不受影响。
仍不奏效,就开 issue,并附上设备型号、Android 版本、诊断与日志里的 WebView 指纹、
可复现的步骤,以及导出的日志。发之前请通读:日志是 DSH、沙箱和访客命令日志的纯文本,
可能包含路径或你不想公开的内容。正常安装流程见
分步指南;只需要重新下载 APK,可以去
下载页,那里始终指向当前版本。