MaaXYZ / MaaFramework

基于图像识别的自动化黑盒测试框架 | An automation black-box testing framework based on image recognition
GNU Lesser General Public License v3.0
1.48k stars 175 forks source link

adb自动检测时设备重复显示 #366

Open Windsland52 opened 1 month ago

Windsland52 commented 1 month ago

maa.log 使用雷电模拟器测试,多开时会重复显示一遍设备。 QQ图片20240928121109 只留下一个模拟器时又恢复正常。

9/30更新:

出现了重复出现3次的情况。 可能影响的操作: 正在运行时,删除了asset目录下生成的maa_option.json,保留cache中的同名文件,以便初始化配置。

Windsland52 commented 1 month ago

maafw版本:2.0.2

# 运行代码
from maa.toolkit import Toolkit

def main():
    Toolkit.pi_run_cli("C:/Users/DELL/Desktop/github/MST2.0/assets", "C:/Users/DELL/Desktop/github/MST2.0/cache")

if __name__ == "__main__":
    main()
Windsland52 commented 1 month ago

显示数量为多开模拟器数量的平方,如4个同时开启会有16个选项

MistEO commented 1 month ago

这个问题很不好解决,甚至针对雷电的情况没法解决,而且现在多开的时候雷电的截图增强可能也是不生效的。

根本原因是雷电的截图增加 API 需要传入 pid,例如四开时,在我搜索到 4 个雷电进程后,我没法知道哪个 pid 要对应哪个 adb 地址,只能粗暴的排列组合给出让用户自己选(然而现在的 PiCLI 压根没显示 pid,用户盲选的大概率也是错的)

其他模拟器和 adb 设备倒是没有类似问题,或许可以单独针对雷电把这部分禁用掉,只要多开就不支持截图增强

Windsland52 commented 1 month ago

这个问题很不好解决,甚至针对雷电的情况没法解决,而且现在多开的时候雷电的截图增强可能也是不生效的。

根本原因是雷电的截图增加 API 需要传入 pid,例如四开时,在我搜索到 4 个雷电进程后,我没法知道哪个 pid 要对应哪个 adb 地址,只能粗暴的排列组合给出让用户自己选(然而现在的 PiCLI 压根没显示 pid,用户盲选的大概率也是错的)

其他模拟器和 adb 设备倒是没有类似问题,或许可以单独针对雷电把这部分禁用掉,只要多开就不支持截图增强

明白了

MistEO commented 1 month ago

我和雷电的开发大佬们同步了这个问题,看看他们有没有什么好主意,比如改改 API 啥的。

要是不行可能考虑我刚说的雷电多开就不支持截图增强,我们的 bug 本身简单做下去重就好了

weinibuliu commented 1 week ago

MuMu12 v4.1.2 在启用截图增强时可能存在同样的问题 截图: 9e27b91e-c15d-4a6f-a05e-c5d49c4133b1

日志: maa.log