gpt4 book ai didi

monkeyrunner - Monkey Runner在触摸时抛出socketexception断管

转载 作者:行者123 更新时间:2023-12-01 12:42:05 27 4
gpt4 key购买 nike

我在运行monkeyrunner脚本时有时会看到以下错误。
140501 17:01:58.950:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice] 发送触摸事件时出错:500 515 DOWN_AND_UP
140501 17:01:58.950:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]java.net.SocketException:管道损坏
140501 17:01:58.950:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice] 在 java.net.SocketOutputStream.socketWrite0( native 方法)
140501 17:01:58.950:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice] 在 java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)

我如何捕获这些?有帖子建议使用 SocketException
从 java.net 导入 SocketException

然而这似乎不起作用

最佳答案

这可能不是最优雅的解决方案,但这是我想出的。

由于问题是当你杀死一个monkey脚本时,android设备上的进程没有正确清理,所以当你再次尝试连接时,你会遇到管道问题。您可以在设备本身上杀死 -9 猴子进程,您将不再遇到它。

我有两个脚本可以解决这里的问题。
这是 python :

 3 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
4 from time import sleep
5 import sys
6 import signal
7 import subprocess
8
9 device = None
10
11 def execute():
12 device = MonkeyRunner.waitForConnection()
13 #my code here
17
18 def exitGracefully(signum, frame):
19 print "Exiting Gracefully..."
20 subprocess.call(['./killmonkey.sh'])
21 sys.exit(1)
22
23 if __name__ == '__main__':
24 signal.signal(signal.SIGINT, exitGracefully)
25 execute()

和杀死猴子脚本:
#!/bin/bash

var=$(adb shell ps | grep monkey | awk '{print $2}')
echo $var
adb shell kill -9 $var

当我 ctrl+c 运行 python 猴子脚本时,它会调用 killmonkey,它会终止所连接的 android 设备上的进程

这仅在只有一个设备连接时才有效,因为它没有指定设备 ID。不是很优雅,但我觉得它很有效。

关于monkeyrunner - Monkey Runner在触摸时抛出socketexception断管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23416663/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com