diff --git a/module/device/connection.py b/module/device/connection.py index 889c528d4..a5a49d1dd 100644 --- a/module/device/connection.py +++ b/module/device/connection.py @@ -71,6 +71,8 @@ def retry(func): def init(): pass + if func.__name__ == 'nemud_player_version': + raise EmulatorNotRunningError(f'nemud_player_version_failed') #mumu启动失败 logger.critical(f'Retry {func.__name__}() failed') raise RequestHumanTakeover diff --git a/module/device/device.py b/module/device/device.py index 9e9402d58..9812fca7d 100644 --- a/module/device/device.py +++ b/module/device/device.py @@ -74,7 +74,10 @@ class Device(Screenshot, Control, AppControl): try: super().__init__(*args, **kwargs) break - except EmulatorNotRunningError: + except EmulatorNotRunningError as e: + logger.error(e) + # if e.args[0] == "nemud_player_version_failed":#mumu启动失败 + # self.emulator_info_get() if trial >= 3: logger.critical('Failed to start emulator after 3 trial') raise RequestHumanTakeover diff --git a/module/device/platform/platform_base.py b/module/device/platform/platform_base.py index d4c2dae04..0354b6737 100644 --- a/module/device/platform/platform_base.py +++ b/module/device/platform/platform_base.py @@ -137,6 +137,18 @@ class PlatformBase(Connection, EmulatorManagerBase): select = instances.select(**search_args) if select.count == 0: logger.warning(f'No emulator instance with {search_args}, serial invalid') + logger.warning(f'Now searching by name {name}') + if name: + search_args = dict(serial="127.0.0.1:7555") #启动失败的mumu模拟器启动adb端口为7555 + search_args['name'] = name + select = instances.select(**search_args) + if select.count == 1: + instance = select[0] + logger.hr('Emulator instance', level=2) + logger.info(f'Found emulator instance: {instance}') + return instance + else: + logger.warning(f'No emulator instances with {search_args}, name invalid') return None if select.count == 1: instance = select[0]