“热力图无法启动”并伴随 EvalError(unsafe-eval):0.46.0 已修复

在 Senzoukria 0.45.0 里,已安装的应用有可能显示“热力图无法启动”,并附上一条关于 'unsafe-eval' 和内容安全策略(Content Security Policy)的 EvalError。当时使用的渲染库会在运行时生成代码,而应用的安全策略禁止这种做法。0.46.0 换掉了这个库;请升级到 0.46.0 或更高的版本。

Senzoukria · 故障排除 · 更新于 2026 年 9 月


概要

标题
“热力图无法启动”
技术细节
“EvalError: Evaluating a string as JavaScript violates the following Content Security Policy directive because 'unsafe-eval' is not an allowed source of script…”(由 JavaScript 引擎生成,界面不翻译它)
状态行
“{symbol} · 无法启动”
修复版本
0.46.0

你会看到什么

一条标题为“热力图无法启动”的提示,正文是“{symbol} 的图表无法初始化。”。在“技术细节”下面,错误信息以“EvalError: Evaluating a string as JavaScript violates the following Content Security Policy directive because 'unsafe-eval' is not an allowed source of script”开头 —— 这一段是 JavaScript 引擎自己给出的原文,中文界面里同样是英文,不必去找它的译法。状态行写着“{symbol} · 无法启动”。它在热力图页面上会出现,在“我的页面”里的热力图卡片上也一样会出现。

为什么会这样

热力图当时使用的那个 WebGL 库,会为自己的绘图指令现写一段 JavaScript,并在启动时求值执行。应用的内容安全策略刻意只保留 script-src 'self',并且有一个测试在守着它,只在脚本沙箱内部才允许求值。开发环境没有这条策略,这正是热力图在开发环境里能跑、在已安装的应用里跑不起来的原因。同样的成因,早在 0.30.0 就已经从 3D GEX 曲面里清除过一次。

0.46.0 用直接的 WebGL 调用来绘制热力图的两个程序(流动性图与气泡),整个过程不再生成任何代码。

如何解决

  • 升级到 0.46.0 或更高版本:在启动时接受更新提示,或者在 账户 → Versions 里安装(这张卡片的标题在中文界面里仍是英文 Versions)。
  • 如果你之前把版本钉住了(pinned),请在 Versions 卡片上点“Resume automatic updates”,这句同样没有中文译文,或者直接安装 0.46.0。
  • 升级完成后重新打开热力图;提示上的“重试”按钮也会重新把它建起来。

它并不意味着什么

  • 不是显卡驱动或者 GPU 的问题:这个错误来自安全策略,而不是来自 WebGL。
  • 不是数据的问题:订单簿完全可能正常到达,只是渲染器拒绝启动。
  • 也不是一个应该靠放宽安全设置来解决的问题:修复在应用里面。

何时联系技术支持

如果这些都不管用,请通过 菜单 → 问题反馈 或者在 Senzoukria 的 Discord 上联系技术支持。如果你已经在 0.46.0 或更高版本上,却依然看到“无法启动”,请把“技术细节”里的内容和你的显卡型号一起复制过来。

同一栏目

其他语言版本

常见问题

哪些版本会受影响?
凡是仍然用那个库来绘制热力图的构建都会受影响,其中包括 0.45.0;这个问题的报告日期是 2026 年 9 月 24 日。0.46.0 已经不再使用它。
这个修复对比较老的显卡安全吗?
0.46.0 保留了与上一代渲染器完全相同的 WebGL 上下文,也保留了它所需要的同一个 ANGLE_instanced_arrays 扩展;被去掉的只有代码生成这一步。

继续阅读