我在运行 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(本机方法)
140501 17:01:58.950:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice] 在 java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
我怎样才能抓住这些?有帖子建议使用 SocketException
从 java.net 导入 SocketException
但这似乎不起作用
这可能不是最优雅的解决方案,但这是我想出的。
由于问题是当您杀死猴子脚本时,Android 设备上的进程无法正确清理,因此当您尝试再次连接时,您会遇到管道问题。您可以杀死 -9 设备本身上的猴子进程,这样您就不会再遇到它了。
我有两个脚本可以解决这里的问题。
这是蟒蛇:
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 Monkey 脚本时,它会调用killmonkey,它会杀死所连接的Android设备上的进程
特别是,仅当仅连接一台设备时,此功能才有效,因为它未指定设备 ID。不是很优雅,但我发现它很有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)