仅在某些特定应用程序运行时才拍摄屏幕截图的问题

时间:2019-02-18 13:38:24

标签: android android-emulator adb monkeyrunner

我在使用某些特定应用程序的模拟器中截取屏幕截图时遇到问题:如果该应用程序未运行(例如在主屏幕上),则截屏(通过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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

in part是阻止屏幕快照/截屏的对象-至少FLAG_SECURE-。如果有问题的应用使用的是FLAG_SECURE,我希望症状会让人联想到您所看到的。