From e83e49f61b68bf968b813004f8b090061f385eeb Mon Sep 17 00:00:00 2001 From: 1b2c Date: Sat, 2 May 2026 13:24:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=83=A8=E5=88=86=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E4=B8=8B=E6=97=A0=E6=B3=95=E8=87=AA=E5=8A=A8=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=20(#16422)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 943a798b38 在 AdbConnectionContext::replace_cmd 的统一替换表中加入了 [PackageName], 导致 m_adb.start / m_adb.stop 在 connect 阶段就被提前替换。当调用方未通过 AsstSetInstanceOption(ClientType, ...) 设置 client_type 时(如 maa-cli 等不感知该 新选项的第三方调用方),m_conn_ctx.package_name 为空字符串,m_adb.start 中的 [PackageName] 被替换为空,后续 start_game(client_type) 内的运行时替换沦为 no-op, 最终启动命令缺失包名导致启动游戏失败。 将 [PackageName] 从统一替换表移除,恢复其作为运行时参数的语义;connect 阶段唯一 需要 [PackageName] 的位置(Androws 的 displayId 查询)改为就地显式替换。 Close #16392 Co-authored-by: Claude Opus 4.7 (1M context) --- src/MaaCore/Controller/AdbController.cpp | 8 +++++++- src/MaaCore/Controller/AdbController.h | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Controller/AdbController.cpp b/src/MaaCore/Controller/AdbController.cpp index e54f0ee369..7fd0096118 100644 --- a/src/MaaCore/Controller/AdbController.cpp +++ b/src/MaaCore/Controller/AdbController.cpp @@ -1026,7 +1026,13 @@ bool asst::AdbController::connect(const std::string& adb_path, const std::string // 按需获取display ID 信息 if (!adb_cfg.display_id.empty()) { - auto display_id_ret = call_command(m_conn_ctx.replace_cmd(adb_cfg.display_id)); + // [PackageName] 不参与 replace_cmd 的统一替换(保留为运行时参数), + // 此处 displayId 查询是 connect 阶段唯一需要它的场景,就地显式替换。 + auto display_id_cmd = utils::string_replace_all( + m_conn_ctx.replace_cmd(adb_cfg.display_id), + "[PackageName]", + m_conn_ctx.package_name); + auto display_id_ret = call_command(display_id_cmd); if (!display_id_ret) { return false; } diff --git a/src/MaaCore/Controller/AdbController.h b/src/MaaCore/Controller/AdbController.h index 961f104b2a..f6f515f0db 100644 --- a/src/MaaCore/Controller/AdbController.h +++ b/src/MaaCore/Controller/AdbController.h @@ -57,7 +57,6 @@ struct AdbConnectionContext { "[EventId]", event_id }, { "[NcPort]", std::to_string(nc_port) }, { "[NcAddress]", nc_address }, - { "[PackageName]", package_name }, }); } };