Windows系统Git bash配置adb截图alias后真机生成图片无法打开
问题原因
- 命令拼写错误:Android原生系统的截图命令为
screencap,你配置的alias中错误使用了不存在的screenshot命令,导致输出的不是正确的PNG二进制流,而是命令不存在的报错文本,所以生成的文件无法被识别为图片。 - 部分shell环境下直接重定向adb的二进制输出会自动转换换行符,破坏PNG文件的二进制结构,也会导致图片损坏。
解决方案
方案1:修正alias拼写(适配大多数场景)
直接把你的alias替换为如下内容:
alias screenshot="adb exec-out screencap -p > ~/Desktop/adb_screen.png"
修改完成后执行source ~/.bashrc让配置生效即可。
方案2:全兼容版本(适配所有机型、所有shell环境)
如果修正拼写后还是出现图片损坏的问题,可以使用先存到真机存储空间再拉取到本地的写法,完全避免二进制流传输过程中被修改的问题:
alias screenshot="adb shell screencap -p /sdcard/adb_temp_screen.png && adb pull /sdcard/adb_temp_screen.png ~/Desktop/adb_screen.png && adb shell rm /sdcard/adb_temp_screen.png"
额外说明
如果当前电脑同时连接了多台Android设备,需要在adb命令后添加-s 设备序列号参数指定目标设备,设备序列号可以通过adb devices -l命令查询。
内容的提问来源于stack exchange,提问作者lbarqueira
相关产品推荐
相关产品推荐

