sanmusen214 / BAAH

A script that can automatically finish daily tasks in Blue Archive (global/Japan/CN/CN bilibili server). 碧蓝档案国际服/日服/蔚蓝档案国服/B服每日任务脚本
MIT License
405 stars 16 forks source link

执行脚本报错,无法启动模拟器 #93

Closed xurunyu closed 2 months ago

xurunyu commented 2 months ago

Before you raise this issue, plz make sure it is not duplicated / 在你提出该issue之前,请确保它以前从未被提及过.

Describe the bug / 描述bug [ What you want to do and what the script did / 你想要脚本做什么,而它做了什么出乎意料的事 ] 执行脚本报错,无法打开模拟器 配置的模拟器路径是从快捷方式中复制出来的 使用的是mumu12模拟器 Screenshots / 截图 [ Plz attach any screenshots of emulator or logs / 请提供相关日志以及模拟器的截图 ] image

Please complete the following information / 请填写以下信息

xurunyu commented 2 months ago

BAAH 和mumu模拟器全删了重装之后好了,原因不明

image
xurunyu commented 2 months ago

又挂了 原因一样不明

image
sanmusen214 commented 2 months ago

一种可能是 你指定的MuMuPlayer.exe不是有效的Win32程序与你系统不兼容,尝试以兼容模式运行模拟器。 另一种可能是subprocess模块没有正确替换%1占位符为模拟器启动路径,(我也不知道为啥)。

尝试重启电脑重试,如果问题依然出现,建议在BAAH文件夹下创建如下openmumu.bat脚本打开模拟器,然后在BAAH模拟器栏里写该bat文件路径。这样应该能正常打开模拟器,不过会使得脚本无法追踪进程号来自动关闭模拟器

start "" "D:/aaaa/bbbb/shell/MuMuPlayer.exe" "-v" "1"

image

如果还不行建议手动开启模拟器然后再启动脚本

xurunyu commented 2 months ago

@sanmusen214 我找到原因了 QQ_1722605728174 mumu升级之后 安装路径里默认带有空格 MuMu Player 12 路径按照空格split之后 替换就有问题了 自选一个没空格的文件夹就好了

sanmusen214 commented 2 months ago

自选一个没空格的文件夹就好了

之前也想过可能是这个问题。但是我尝试过路径中有多个空格的应用程序,它是能打开的。稍后优化下split逻辑

sanmusen214 commented 2 months ago

87af2a4 改成字符串形式传参了 记录下测试结果

import subprocess

# 要启动的exe的路径:"D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH 1.6.0\BAAH.exe"

# ==列表形式==

# 失败:xe路径外侧加引号,按空格split
subprocess.Popen(['"D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH', '1.6.0\BAAH.exe"', 'boki_queen.json'])

# 成功:exe路径外侧不写引号,按空格split
subprocess.Popen(['D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH', '1.6.0\BAAH.exe', 'boki_queen.json'])

# 失败:启动路径写成第一个元素,加引号,参数写成第二个元素
subprocess.Popen(['"D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH 1.6.0\BAAH.exe"', 'boki_queen.json'])

# 成功:启动路径写成第一个元素,不加引号,参数写成第二个元素
subprocess.Popen(['D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH 1.6.0\BAAH.exe', 'boki_queen.json'])

# 失败:列表第一个元素包含exe路径和参数,exe路径加引号
subprocess.Popen(['"D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH 1.6.0\BAAH.exe" boki_queen.json'])

# 失败:列表第一个元素包含exe路径和参数,exe路径不加引号
subprocess.Popen(['D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH 1.6.0\BAAH.exe boki_queen.json'])

# ==字符串形式==

# 成功:exe路径加引号
subprocess.Popen('"D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH 1.6.0\BAAH.exe" boki_queen.json')

# 成功:exe路径不加引号
subprocess.Popen('D:\myCode\PYTHON_file\碧蓝档案自动每日\BAAH 1.6.0\BAAH.exe boki_queen.json')