[Bug] Android 15 模拟器上 fastinput_ime_enable 的 xpath 无法匹配,装备码输入无限卡死
Author: Lsbcy-xueCreated Sep 14, 2026Updated Sep 14, 2026
Labelsbug / 缺陷
在提问之前...
- 我已经搜索了现有的 issues
- 我在提问题之前至少花费了 5 分钟来思考和准备
- 我已经阅读了 Wiki 中的 常见问题(FAQ)
- 我正在使用最新版的 Alas
描述你的问题
紧急委托换旗舰装备(MOUNT FLAGSHIP EQUIPMENTS)时,在 Code input 之后卡住,没有任何后续日志,也不会触发 GameStuckError,只能手动停止。历史日志中每次出现 trying to enable it in settings 后都会卡几十分钟到数小时。
原因分析
- MuMu 12 的 Android 15 镜像屏蔽了
ime enable/ime set/ime reset,settings put secure default_input_method也会被立即还原,因此进入EquipmentCodeHandler.fastinput_ime_enable()的设置页 fallback。 - 该页面(
Settings$AvailableVirtualKeyboardActivity)在 Android 15 下开关的 resource-id 是com.android.settings:id/switchWidget,而代码中的 xpath 写的是android:id/switch_widget。Alas 使用的uiautomator dump --compressed结果如下(开关与 title 仍是 sibling,只有 id 不同):
LinearLayout (clickable)
├── TextView android:id/title text="FastInputIME"
└── Switch com.android.settings:id/switchWidget checked="true"
LinearLayout (clickable)
├── TextView android:id/title text="SogouIME-chuizi"
└── Switch com.android.settings:id/switchWidget checked="true" 四个 xpath 都匹配不到,while 1 循环中既不点击也不 break,且没有超时,导致无限空转。
实测:在该模拟器上直接调用 EquipmentCodeHandler.fastinput_ime_enable()(仅将 device.click 替换为记录),连续 15 次 dump_hierarchy_adb()(约 29 秒)4 个 xpath 匹配数均为 0,未发生任何点击;把 id 换成 com.android.settings:id/switchWidget 后可以匹配。
3. 即使在设置页手动关闭搜狗输入法(只保留 FastInputIME),IMMS 仍保持绑定搜狗(mCurId 不变);重启模拟器后 MuMu 会自动重新启用搜狗并设为默认。因此在该环境下,仅靠设置页开关也无法让 FastInputIME 成为当前输入法。
如何复现
- MuMu 12(Android 15)模拟器,默认输入法为自带的搜狗输入法(SogouIME-chuizi)
- 开启紧急委托,旗舰使用装备码换装
- 运行到 MOUNT FLAGSHIP EQUIPMENTS 输入装备码
- adb 设置输入法失败,进入设置页 fallback 后无限卡住
预期行为
无法切换到 FastInputIME 时应超时退出或跳过换装,而不是无日志卡死;最好能兼容 Android 15 的设置页结构。
相关 Logs
INFO 03:01:48.190 │ MOUNT FLAGSHIP EQUIPMENTS
INFO 03:01:49.190 │ Click ( 985, 106) @ EQUIPMENT_CODE_ENTRANCE
INFO 03:01:49.460 │ Langley detected
INFO 03:01:49.468 │ Click (1094, 506) @ EQUIPMENT_CODE_CLEAR
INFO 03:01:49.593 │ Code input: R0o4LzAvMC80SU9ML1FMXDA=
WARNING 03:01:49.619 │ Unable to enable FastInputIME: The ime enable command is disabled for security reasons.
WARNING 03:01:49.627 │ Unable to set FastInputIME: The ime set command is disabled for security reasons.
WARNING 03:01:49.627 │ FastInputIME not enabled by adb shell, trying to enable it in settings
(之后无输出,持续数小时,直到手动停止)截图
No response
还有别的吗?
环境
- Alas:master @ 46fe341db(已与上游同步)
- 模拟器:MuMu 12(nx_main),Android 15,1280x720
- 截图 nemu_ipc,控制 minitouch,服务器 cn_android-10
建议
fastinput_ime_enable()的循环加超时,失败时退出/跳过换装- xpath 兼容
com.android.settings:id/switchWidget(例如contains(@resource-id, "id/switch")) - 当 FastInputIME 无法设为当前输入法时,提供不依赖输入法的回退方案,例如点击输入框后
adb shell input text <code>(装备码仅含 Base64 字符)
相关:#5804 #5901
Source: LmeSzinc/AzurLaneAutoScript