feat(emulator): 增加了mumu模拟器启动失败后的自动重启处理

This commit is contained in:
W1NDes 2025-04-30 20:37:17 +08:00
parent 4d97665f03
commit a9fc20e6e2
3 changed files with 18 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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]