来自 macOS 应用程序 运行 脚本的 adb 屏幕截图
Screenshots with adb from script which is run form macOS application
我正在尝试在 Android-device/emulator 上截取屏幕截图,这应该从 macOS 应用程序中触发。
我已经创建了一个 bash 脚本 - 如果我从终端 运行 它运行良好。
但是,当我从我的 macOS 应用程序 运行 它时,当我尝试 pull
来自设备的图像时出现错误。
ADB=""
DEVICE=""
PATH=""
FILENAME=""
$ADB -s "$DEVICE" shell screencap -p "/sdcard/${FILENAME}"
$ADB -s "$DEVICE" pull "/sdcard/${FILENAME}"
我收到以下错误:
adb: error: cannot create './EBC34F20-4624-4435-806B-15D844F4540C.png': Read-only file system
为什么它与我在终端中 运行 时不同?我已经尝试查看哪个用户正在通过 adb 执行,并且所有用户都返回相同的信息。
我已经从我的 macOS 应用程序中移除了沙盒并加固了 运行time 以避免它的干扰。
如果我在模拟器上更改位置(不是/sdcard
)似乎也没关系。
我不知道你设备上的文件系统的实际问题是什么,但我会完全避免使用文件系统,直接将屏幕截图传输到标准输出并通过 adb 传输到你的 Mac.
删除以下两行:
$ADB -s "$DEVICE" shell screencap -p "/sdcard/${FILENAME}"
$ADB -s "$DEVICE" pull "/sdcard/${FILENAME}"
并用这一行替换它们:
$ADB -s "$DEVICE" exec-out screencap -p > ${FILENAME}
没有 adb pull
因此文件系统完全没有问题。
命令取自以下答案:
我正在尝试在 Android-device/emulator 上截取屏幕截图,这应该从 macOS 应用程序中触发。
我已经创建了一个 bash 脚本 - 如果我从终端 运行 它运行良好。
但是,当我从我的 macOS 应用程序 运行 它时,当我尝试 pull
来自设备的图像时出现错误。
ADB=""
DEVICE=""
PATH=""
FILENAME=""
$ADB -s "$DEVICE" shell screencap -p "/sdcard/${FILENAME}"
$ADB -s "$DEVICE" pull "/sdcard/${FILENAME}"
我收到以下错误:
adb: error: cannot create './EBC34F20-4624-4435-806B-15D844F4540C.png': Read-only file system
为什么它与我在终端中 运行 时不同?我已经尝试查看哪个用户正在通过 adb 执行,并且所有用户都返回相同的信息。
我已经从我的 macOS 应用程序中移除了沙盒并加固了 运行time 以避免它的干扰。
如果我在模拟器上更改位置(不是/sdcard
)似乎也没关系。
我不知道你设备上的文件系统的实际问题是什么,但我会完全避免使用文件系统,直接将屏幕截图传输到标准输出并通过 adb 传输到你的 Mac.
删除以下两行:
$ADB -s "$DEVICE" shell screencap -p "/sdcard/${FILENAME}"
$ADB -s "$DEVICE" pull "/sdcard/${FILENAME}"
并用这一行替换它们:
$ADB -s "$DEVICE" exec-out screencap -p > ${FILENAME}
没有 adb pull
因此文件系统完全没有问题。
命令取自以下答案: