AdbClient 错误:[错误 10053] 已建立的连接被中止

0 投票
1 回答
768 浏览
提问于 2025-04-18 08:04

我在执行 device.takeSnapshot() 和 device.touch() 这两个命令时遇到了这个错误:

    Traceback (most recent call last):
  File "C:\Users\Me\Desktop\AndroidViewClient_Bots\pytesser\insta_get_list_of
_users.py", line 82, in <module>
    device.touch(213,481, 'DOWN_AND_UP')
  File "C:\Python27\lib\site-packages\androidviewclient-7.0.2-py2.7.egg\com\dtmi
lano\android\adb\adbclient.py", line 425, in touch
    self.shell('input tap %d %d' % (x, y))
  File "C:\Python27\lib\site-packages\androidviewclient-7.0.2-py2.7.egg\com\dtmi
lano\android\adb\adbclient.py", line 257, in shell
    self.__send('shell:%s' % cmd, checkok=True, reconnect=False)
  File "C:\Python27\lib\site-packages\androidviewclient-7.0.2-py2.7.egg\com\dtmi
lano\android\adb\adbclient.py", line 154, in __send
    self.__checkOk()
  File "C:\Python27\lib\site-packages\androidviewclient-7.0.2-py2.7.egg\com\dtmi
lano\android\adb\adbclient.py", line 184, in __checkOk
    recv = self.socket.recv(4)
socket.error: [Errno 10053] An established connection was aborted by the softwar
e in your host machine

这是我的代码:

import sys
import os
import time
from PIL import Image # Python Image Library

try:
    sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
    pass

from com.dtmilano.android.adb.adbclient import AdbClient, Device
from com.dtmilano.android.viewclient import ViewClient, View


device, serialno = ViewClient.connectToDeviceOrExit(verbose=True)


my_img = device.takeSnapshot()
device.touch(200,300, 'DOWN_AND_UP')

这真的很奇怪,因为如果我只使用

my_img = device.takeSnapshot() 

或者

device.touch(200,300, 'DOWN_AND_UP')

这两个命令中的任意一个,我就不会出现错误。但是如果把它们放在同一段代码里,就会出现上面的错误。我是不是在执行多个设备命令时漏掉了什么?

1 个回答

1

这有点复杂,我想。你的问题可能是因为 device.takeSnapshot() 是这样定义的:

def takeSnapshot(self, reconnect=False):
    '''
    Takes a snapshot of the device and return it as a PIL Image.
    '''

    ...

所以,如果你打算在拍摄快照后继续使用这个连接,建议使用:

device.takeSnapshot(reconnect=True)

撰写回答