From e89eb9a904650ce39b4f28f84dfdc3ffaf77f623 Mon Sep 17 00:00:00 2001 From: linshenjianlu Date: Tue, 21 Apr 2026 09:57:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(entry):=20=E5=85=B3=E9=94=AE=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=A4=B1=E8=B4=A5=E6=97=B6=E6=9A=B4=E9=9C=B2=E7=9C=9F?= =?UTF-8?q?=E5=AE=9E=E9=94=99=E8=AF=AF=EF=BC=8C=5F=5Fout=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=A0=B8=E5=BF=83=E4=BE=9D=E8=B5=96=E5=89=8D=E7=BD=AE?= =?UTF-8?q?=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ToolHub.js | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/ToolHub.js b/ToolHub.js index a0f9365..fc00915 100644 --- a/ToolHub.js +++ b/ToolHub.js @@ -266,6 +266,7 @@ var modules = ["th_01_base.js", "th_02_core.js", "th_03_icon.js", "th_04_theme.j "th_14_panels.js", "th_15_extra.js", "th_16_entry.js"]; var __moduleUpdates = []; var loadErrors = []; +var criticalModules = { "th_01_base.js": true, "th_16_entry.js": true }; for (var i = 0; i < modules.length; i++) { try { loadScript(modules[i]); @@ -274,11 +275,38 @@ for (var i = 0; i < modules.length; i++) { writeLog(modErr); try { android.util.Log.e("ToolHub", modErr); } catch(eLog) {} loadErrors.push({ module: modules[i], err: String(e) }); - // # 关键模块失败也记录到 loadErrors,由 __out 统一返回错误信息,不再直接 throw + if (criticalModules[modules[i]]) { + throw "Critical module failed: " + modules[i] + " (" + String(e) + ")"; + } } } var __out = (function() { + // 关键函数未加载成功时提前返回友好错误,避免 ReferenceError + if (typeof getProcessInfo !== "function") { + return { + ok: false, + started: false, + msg: "ToolHub 启动失败", + err: "核心函数 getProcessInfo 未定义,请检查 th_01_base.js 是否加载成功(网络下载失败或文件缺失)" + }; + } + if (typeof ToolHubLogger !== "function") { + return { + ok: false, + started: false, + msg: "ToolHub 启动失败", + err: "核心类 ToolHubLogger 未定义,请检查 th_01_base.js 是否加载成功" + }; + } + if (typeof FloatBallAppWM !== "function") { + return { + ok: false, + started: false, + msg: "ToolHub 启动失败", + err: "核心类 FloatBallAppWM 未定义,请检查 th_02_core.js / th_16_entry.js 是否加载成功" + }; + } function optStr(v) { return (v === undefined || v === null) ? "" : String(v); }