[Bug Report] 搜狗输入法 1376 双拼方案 下拉框 无法点击(含详细 debug 诊断)
Tofloor
poster avatar
zz
deepin
12 hours ago
Author

搜狗输入法 Deepin Next 版 - 双拼方案设置下拉框为空且闪退

环境信息

项目 详情
操作系统 Deepin 25 (crimson)
桌面环境 deepin
架构 x86_64
sogou-ime-ng 10.0.10.0-1376
com.sogou.ime.ng.fcitx5.deepin 10.0.10.0-1376.1
fcitx5 版本 5.1.12
内部构建号 10.0.10.0-2175-deb11u1

问题描述

打开搜狗输入法设置页后,进入拼音设置 -> 双拼方案设置,双拼方案下拉框(Combo)内容为空,点击下拉框尝试展开时,整个设置页面闪退。

复现步骤

  1. 右键搜狗输入法状态栏图标,打开"属性设置"
  2. 在拼音设置页中,点击"双拼方案设置"按钮
  3. 弹出的双拼方案设置窗口中,方案下拉框为空
  4. 点击下拉框 -> 设置页面闪退

排查分析

1. 双拼方案配置文件位置

系统默认双拼方案位于:

/opt/apps/com.cpis/share/dict/sogou/users/._default/sogou/ShuangPinSchemes/
├── ABC.ini          (智能ABC)
├── GuoBiao.ini      (国标双拼)
├── MS2003.ini       (微软双拼)
├── PinyinJiaJia.ini (拼音加加)
├── Sogou.ini        (搜狗双拼)
├── XiaoHe.ini       (小鹤双拼)
├── ZiGuang.ini      (紫光双拼)
└── ZiRanMa.ini      (自然码)

方案文件本身是完整的,部署在正确路径下。

2. 引擎日志中的关键错误

引擎日志 /tmp/com.cpis.engine.zz6zz666.log 中反复出现以下错误链:

ERROR: open symbol p_sogou_shell_ex_UserDictToScel error:
  [/opt/apps/com.cpis/lib/x86_64-linux-gnu/cpis-engine-plugin/sogou/
   libUserDictConvertor.so: undefined symbol: ConvertUserDictToScel]

ERROR: rebuild keymap for sogou shell error
       (sogou_engine_base.cpp:2617)

ERROR: reload sogou config error
       (sogou_engine_base.cpp:1950)

3. 根因分析

  • libUserDictConvertor.so 缺少 ConvertUserDictToScel 符号,库文件存在 ABI 兼容性问题
  • 由于该库加载失败,引擎的 reload sogou config 流程异常
  • 键位映射(keymap)重建失败,导致双拼方案数据未被加载到内存
  • 前端设置程序通过 DBus 查询 user.shuangpin.list 时,引擎返回空字符串
  • 设置程序未对空列表做防护处理,展开空下拉框时触发空指针/越界,导致闪退

4. DBus 验证

$ gdbus call --session --dest com.cpis.panel \
    --object-path /com/cpis/panel \
    --method com.cpis.panel.AcquireEngineStat \
    "uid" "user.shuangpin.list"
# 返回: ('', 0)   # 空字符串,确认引擎无方案数据

问题定级

严重(Major) — 双拼方案设置功能完全不可用,且操作会导致设置程序崩溃。

建议修复方向

  1. 库兼容性修复:检查 libUserDictConvertor.so 的编译链接,确保 ConvertUserDictToScel 符号正确导出,或调查与其他 .so 文件的版本匹配关系
  2. 容错处理sogou_engine_base.cpp 中的 reload sogou configrebuild keymap 流程需要增加对库加载失败的容错,不应因为非核心库(用户词典转换)失败而导致双拼方案加载中断
  3. 前端防护:设置程序(sogou-ime-setting)的 page_double_pin.xmlcombo_shuang_pin 下拉框需增加对空列表的防护,避免空指针崩溃

附注

  • 全拼输入功能正常,仅双拼方案设置功能受影响
  • 系统内置 fcitx5-pinyin 的双拼功能可正常使用
Reply Favorite View the author
All Replies

No replies yet