我正在使用:
Java 版本:7
SDK 工具,修订版 24.4.1(2015 年 10 月)
使用工具 screenshot2 截屏会在 Ubuntu Server 14.04 和 Kali Linux 2.0 上引发 NullPointerException。它适用于 Mac OS X 10.11。
命令:
$ screenshot2 -e image.png
(无论是否使用 -s 参数都会出错)
错误:
Exception in thread "main" java.lang.NullPointerException
at com.android.ddmlib.MonitorThread.wakeup(MonitorThread.java:580)
at com.android.ddmlib.MonitorThread.quit(MonitorThread.java:588)
at com.android.ddmlib.AndroidDebugBridge.terminate(AndroidDebugBridge.java:235)
at com.android.screenshot.Screenshot.main(Screenshot.java:198)
是否有修复或有人知道这是什么原因?
最佳答案
我找到了避免使用 screenshot2 工具的解决方案。
Linux 的依赖项:
sudo apt-get install zlib1g-dev libjpeg-dev
也许即使没有在你的机器上它也能工作,但我不这么认为。
那么你需要python包pillow版本2.9.0
Mac 和 Linux 的依赖性:
sudo pip install pillow==2.9.0
我制作了这个创建屏幕截图图像的非常基本的脚本。
文件截图.py
from StringIO import StringIO
from PIL import Image
import sys
binary = sys.stdin.read().replace('\r\n', '\n')
stream = StringIO(binary)
image = Image.open(stream)
image.save(sys.argv[1], 'PNG')
现在您可以像我在上面尝试的那样使用命令行简单地从设备获取屏幕截图。
例子:
adb shell screencap -p | python screenshot.py image.png
或针对特定设备使用 -s 参数
adb shell -s emulator-5558 screencap -p | python screenshot.py image.png
关于java - Android screenshot2 Linux 上的工具 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34419877/