Skip to content

[Bug] 小狼毫启动即崩溃 + 设置界面完全无法打开(DLL 版本冲突 / 残留文件问题)+ 解決方案 #1868

@LIYUE1918

Description

@LIYUE1918

[Bug] 小狼毫启动即崩溃 + 设置界面完全无法打开(DLL 版本冲突 / 残留文件问题)+ 解決方案

上报前请检查

  • 我遇到的问题没有其他人在 issue 里提到过(已搜索过类似崩溃问题,但本案涉及 DLL 版本混用 + 残留注册表)
  • 我的小狼毫版本于 rime/weasel 下载(初版)
  • 我在使用小狼毫的最新发布版本,或最新发布版本后的 CI 构建(尝试过多个版本,包括 GitHub CI 构建)

操作系统信息

  • OS 详细版本: Windows 11 25H2
  • 小狼毫版本:
    • 初次安装:官方 Weasel 0.17.4(从 rime/weasel 下载)
    • 后续尝试:多个 GitHub 26.3最新版本,17.0

描述遇到的问题

启动即崩溃 + 设置界面完全无法打开

  1. 核心问题:小狼毫安装后,无论是刚装完还是尝试部署,程序(WeaselDeployer.exe / WeaselServer.exe)都会立即崩溃,进入「启动 → 闪崩 → 自动重启 → 再崩溃」的死循环。

  2. 衍生问题

    • 设置界面无法打开:右键托盘图标或通过开始菜单打开「输入法设置」等界面,只要不是跳转浏览器或打开文件夹的操作,都无法正常弹出界面。
    • 配置界面无响应:点击任何非浏览器/非资源管理器的选项(如“用户词典管理”、“同步”等),均无任何窗口弹出,疑似进程启动即崩溃。
    • 浏览器跳转正常:点击“使用指南”、“获取更多输入方案”等会打开网页的按钮功能正常。
    • 打开文件夹正常:点击“打开用户文件夹”、“打开程序文件夹”等会弹出资源管理器的功能正常。
  3. 崩溃证据

    • C:\Users\QWQ\AppData\Local\Temp\rime.weasel 目录下,1 小时内产生了 73 个崩溃日志文件
    • 所有日志均在以下位置截断:
      I20260523 21:48:33.189688  3272 modules.cc:96] registering components from module 'lua'.
      
    • Windows 事件查看器错误
      错误应用程序名称: WeaselDeployer.exe
      异常代码: 0xc0000409(安全检查失败 / 栈缓冲区溢出)
      

复现步骤

  1. 从 rime/weasel 官方下载 Weasel 0.17.4 安装包
  2. 安装时将用户文件夹设置到非系统盘(本例:E:\输入法
  3. 安装完成后,尝试打开“输入法设置”界面 → 无反应
  4. 打开任务管理器观察 → WeaselDeployer.exeWeaselServer.exe 闪退
  5. 查看 Temp 目录 → 发现大量崩溃日志
  6. 尝试从 GitHub 下载其他版本(CI 构建)覆盖安装 → 问题依旧
  7. 尝试运行 WeaselSetup.exe 重新部署 → 同样立即崩溃

预期行为

  • 可以正常使用

截图 / 日志

崩溃日志截断示例:


Log file created at: 2026/05/23 21:43:48
Running on machine: DESKTOP-9D3L7SO
Running duration (h:mm:ss): 0:00:00
Log line format: [IWEF]yyyymmdd hh:mm:ss.uuuuuu threadid file:line] msg
I20260523 21:43:48.752452 18540 core_module.cc:20] registering core components.
I20260523 21:43:48.753071 18540 registry.cc:14] registering component: config_builder
I20260523 21:43:48.753076 18540 registry.cc:14] registering component: config
I20260523 21:43:48.753078 18540 registry.cc:14] registering component: schema
I20260523 21:43:48.753081 18540 registry.cc:14] registering component: user_config
I20260523 21:43:48.753083 18540 dict_module.cc:25] registering components from module 'dict'.
I20260523 21:43:48.753086 18540 registry.cc:14] registering component: tabledb
I20260523 21:43:48.753090 18540 registry.cc:14] registering component: stabledb
I20260523 21:43:48.753092 18540 registry.cc:14] registering component: plain_userdb
I20260523 21:43:48.753100 18540 registry.cc:14] registering component: userdb
I20260523 21:43:48.753103 18540 registry.cc:14] registering component: corrector
I20260523 21:43:48.753107 18540 registry.cc:14] registering component: dictionary
I20260523 21:43:48.753110 18540 registry.cc:14] registering component: reverse_lookup_dictionary
I20260523 21:43:48.753114 18540 registry.cc:14] registering component: user_dictionary
I20260523 21:43:48.753117 18540 registry.cc:14] registering component: userdb_recovery_task
I20260523 21:43:48.753121 18540 gears_module.cc:42] registering components from module 'gears'.
I20260523 21:43:48.753123 18540 registry.cc:14] registering component: ascii_composer
I20260523 21:43:48.753125 18540 registry.cc:14] registering component: chord_composer
I20260523 21:43:48.753126 18540 registry.cc:14] registering component: express_editor
I20260523 21:43:48.753128 18540 registry.cc:14] registering component: fluid_editor
I20260523 21:43:48.753130 18540 registry.cc:14] registering component: fluency_editor
I20260523 21:43:48.753131 18540 registry.cc:14] registering component: key_binder
I20260523 21:43:48.753133 18540 registry.cc:14] registering component: navigator
I20260523 21:43:48.753135 18540 registry.cc:14] registering component: punctuator
I20260523 21:43:48.753137 18540 registry.cc:14] registering component: recognizer
I20260523 21:43:48.753138 18540 registry.cc:14] registering component: selector
I20260523 21:43:48.753140 18540 registry.cc:14] registering component: speller
I20260523 21:43:48.753142 18540 registry.cc:14] registering component: shape_processor
I20260523 21:43:48.753143 18540 registry.cc:14] registering component: abc_segmentor
I20260523 21:43:48.753145 18540 registry.cc:14] registering component: affix_segmentor
I20260523 21:43:48.753147 18540 registry.cc:14] registering component: ascii_segmentor
I20260523 21:43:48.753149 18540 registry.cc:14] registering component: matcher
I20260523 21:43:48.753151 18540 registry.cc:14] registering component: punct_segmentor
I20260523 21:43:48.753152 18540 registry.cc:14] registering component: fallback_segmentor
I20260523 21:43:48.753154 18540 registry.cc:14] registering component: echo_translator
I20260523 21:43:48.753156 18540 registry.cc:14] registering component: punct_translator
I20260523 21:43:48.753157 18540 registry.cc:14] registering component: table_translator
I20260523 21:43:48.753159 18540 registry.cc:14] registering component: script_translator
I20260523 21:43:48.753161 18540 registry.cc:14] registering component: r10n_translator
I20260523 21:43:48.753164 18540 registry.cc:14] registering component: reverse_lookup_translator
I20260523 21:43:48.753165 18540 registry.cc:14] registering component: schema_list_translator
I20260523 21:43:48.753167 18540 registry.cc:14] registering component: switch_translator
I20260523 21:43:48.753169 18540 registry.cc:14] registering component: history_translator
I20260523 21:43:48.753172 18540 registry.cc:14] registering component: simplifier
I20260523 21:43:48.753174 18540 registry.cc:14] registering component: uniquifier
I20260523 21:43:48.753176 18540 registry.cc:14] registering component: charset_filter
I20260523 21:43:48.753178 18540 registry.cc:14] registering component: cjk_minifier
I20260523 21:43:48.753179 18540 registry.cc:14] registering component: reverse_lookup_filter
I20260523 21:43:48.753181 18540 registry.cc:14] registering component: single_char_filter
I20260523 21:43:48.753204 18540 registry.cc:14] registering component: shape_formatter
I20260523 21:43:48.753207 18540 modules.cc:96] registering components from module 'lua'.

Windows 事件查看器:

完整日志文件因数量过多(73个)(其實已經刪除乾淨了)


排查过程(AI 辅助 + Gemini CLI 分析)

🙏 写在前面:本人技术能力有限,以下排查过程是在 AI(Gemini CLI)辅助分析下完成的。如果分析有误或表述不专业,还请各位大佬见谅 🙏

使用的 AI 工具:Gemini CLI(Google 官方命令行 AI 工具),用于分析崩溃日志、比对新旧版本差异、梳理解决步骤。

排查步骤记录:

  1. 日志分析(Gemini CLI 辅助)

    • 让 AI 对比多个崩溃日志文件,发现所有日志均在 module 'lua' 注册处截断
    • AI 指出:问题大概率出在 Lua 模块初始化阶段
  2. AI 就是瞎分析我感覺根本沒有這個問題:版本冲突定位(Gemini CLI 辅助)

    • 检查 C:\Program Files\Rime 下的 DLL 文件:
      • rime.dll → 1.16.1(2026/01/20)
      • weasel.dll → 0.17.4(2026/03/06)
    • AI 指出:核心库版本(1.16.1)与主程序版本(0.17.4)不匹配,这通常是手动混装不同版本导致的典型冲突
  3. 残留检测(手动 + AI 辅助)

    • 尝试多次卸载重装,问题依旧
    • AI 建议检查:注册表、用户目录残留、Temp 临时文件
    • 发现:
      • 注册表中 HKEY_CURRENT_USER\Software\Rime 仍有残留项
      • 自带的 uninstall.exe 无法完全清除以上内容
  4. 跨版本测试(手动)

    • 从官方下载原始 0.17.4 → 崩溃
    • 0.17.0,26 mar beat版本同上
    • AI 推测:可能是某次手动替换 DLL 或残留配置文件导致,并非特定版本问题
  5. 最终定位(Gemini CLI 辅助归纳)

    • 根本原因 = DLL 版本冲突 + 卸载残留(注册表 + 用户目录损坏文件 + Temp 日志)
    • 单纯覆盖安装或自带卸载无法解决,需要 彻底手动清理

解决方案(经过验证)

將一下這段提示詞餵給AI

卸載小狼毫輸入法"C:\Program Files\Rime\weasel-0.17.4\uninstall.exe"運行這個程序,但是呢這個程序清理不乾淨我需要深度清潔包括配置文件和文件夾,用戶文件不需要保留。使用命令行全部刪除乾淨。

其他补充说明(AI分析)

  • 关于 DLL 版本:本案中的 rime.dll(1.16.1)与 weasel.dll(0.17.4)版本不匹配是崩溃的根本原因之一。建议开发组考虑在安装/升级时增加 DLL 版本一致性检查,避免因混装导致此类问题。
  • 关于卸载残留:自带卸载程序未清理注册表项和用户目录下的损坏文件,建议改进卸载脚本,增加清理选项。
  • 关于错误提示:目前崩溃是静默闪崩,无任何错误弹窗,导致用户难以定位问题。建议增加至少一个最小化的错误提示框。
  • AI 辅助说明:本 issue 的部分分析、日志解读和解决方案梳理使用了 Gemini CLI 辅助完成。本人技术能力有限,如有不当之处,请大佬们多多包涵。本 issue 已授权用于 AI 训练和改进。

🏷️ 标签

bug crash windows lua deployment dll冲突 卸载残留 设置界面无法打开


感谢开发者的辛勤付出!🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions