MaaXYZ / MaaFramework

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

RawByNetcat accept timeout 后卡住 #349

Open aaaasssddf opened 1 day ago

aaaasssddf commented 1 day ago

image 系统是Ubuntu24.04 模拟器是redroid11.0 M9A版本2.0.0.-alpha2和2.0.0-alpha3都会报这个错 maa可以启动同一个模拟器里的明日方舟,而且使用命令行adb connect也是成功的,在另一台同局域网下的电脑使用QtScrcpy也可以连上,但是M9A只报了这一行错而且没用任何动作。 剩下几个跟这个报错类似情况的issue看过了但是情况好像不太一样。 在同一局域网下的windows电脑使用MaaPiCli连接则是Run Tasks之后程序直接退出 应该不是adb的问题,adb改成别的都会有不同的报错 可能是redroid和M9A适配的问题之类的?

MistEO commented 1 day ago

log 发一下,debug/maa.log

aaaasssddf commented 1 day ago

maa.log 上面截图对应这次运行在10720行开始的 前面后面很多都是改了参数调试 image 报错那一段的截图

MistEO commented 1 day ago

这里是在测试多种截图方法,会选一种最快的,出问题的这种截图方式在你设备上不能用,timeout 了是正常的,但是不正常的是 timeout 了之后一直卡住了。

https://github.com/MaaXYZ/MaaFramework/blob/main/source/MaaUtils/IOStream/SockIOStream.cpp#L42

这个问题之前专门改过,找了一种全平台通用的取消 future 的方式,当时全平台测试过正常。不知道为什么又会这样,可能和最近升级了 boost 版本有关系

MistEO commented 1 day ago

一个临时的解决方法,先把你设备上不能用的这种截图方法屏蔽掉

在 interface.json 文件里把 controller 改成这样

    "controller": [
        {
            "name": "ADB 默认方式",
            "type": "Adb",
            "adb": {
                "screencap": 7
            }
        }
    ],

image

aaaasssddf commented 1 day ago

修改完interface.json后可以正常运行并报了一些templ size is too large的错误 image

MistEO commented 1 day ago

你的画面咋是竖屏的,截到的图是 720*1280

aaaasssddf commented 1 day ago

你的画面咋是竖屏的,截到的图是 720*1280

哦我知道了,把redroid加上宽度和高度的参数启动再使用M9A就没有这些报错了只剩下最后那两条

MistEO commented 1 day ago

log 发一下

aaaasssddf commented 1 day ago

maa.log 680行左右

neko-para commented 1 day ago

这个bug之前mac遇到过一次(

MistEO commented 1 day ago

maa.log 680行左右

/usr/bin/adb -s 127.0.0.1:5555 shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9] 这个命令在你的设备上跑不了,是用来获取屏幕旋转方向的。不过貌似没啥影响,取了个默认值 0 去用了,后续的控制都正常吗?