我在使用某些特定应用程序的模拟器中截取屏幕截图时遇到问题:如果该应用程序未运行(例如在主屏幕上),则截屏(通过Monkeyrunner或adb)可以正常工作,但是在Monkeyrunner上崩溃到NullPointerException或在截取时返回大小为0的文件屏幕快照通过adb。我已经通过在运行不同应用程序时截取屏幕快照来验证了行为,因此截取屏幕快照的过程很好。当使用其他渲染器时,问题仍然存在。对于-gpu swiftshader_indirect或-gpu guest虚拟机,其行为相同,因此与渲染器无关。另外,我已经使用多个不同的AVD配置文件检查了行为,例如Pixel,Pixel 2,Nexus 5X和多个API版本(25、27、28)。在Ubuntu 18.04上使用Android模拟器版本28.0.22.0(build_id 5194135)。
adb shell中没有错误,文件大小仅为零:
generic_x86:/ $ screencap -p /sdcard/screen.png
generic_x86:/ $ ls -la /sdcard/screen.png
-rw-rw---- 1 root sdcard_rw 0 2019-02-18 15:29 /sdcard/screen.png
Monkeyrunner的输出如下所示:https://kajala.com/monkeyrunner-output.txt
有什么想法吗?