Android:Camera2API仅在谷歌Pixel2&;上崩溃;2个XL设备
我正在我的一个应用程序中使用Camera2示例代码: 直到最近,该应用程序在图像捕获时崩溃,但仅在谷歌Pixel 2和Pixel 2 XL设备上运行良好 事故报告显示了以下内容:Android:Camera2API仅在谷歌Pixel2&;上崩溃;2个XL设备,android,android-camera2,Android,Android Camera2,我正在我的一个应用程序中使用Camera2示例代码: 直到最近,该应用程序在图像捕获时崩溃,但仅在谷歌Pixel 2和Pixel 2 XL设备上运行良好 事故报告显示了以下内容: java.lang.NullPointerException: at ....Camera2BasicFragment$ImageSaver.run (Camera2BasicFragment.java:935) at android.os.Handler.handleCallback (Handler.ja
java.lang.NullPointerException:
at ....Camera2BasicFragment$ImageSaver.run (Camera2BasicFragment.java:935)
at android.os.Handler.handleCallback (Handler.java:873)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:193)
at android.os.HandlerThread.run (HandlerThread.java:65)
这是第935行(ImageSaver类):
我已经尝试了一些方法,但我无法测试,因为我没有像素2设备。有什么建议吗
更新(2018年11月5日):
因此,逻辑上的解释是,从ImageReader返回的图像在某种程度上是空的:
@Override
public void onImageAvailable(ImageReader reader) {
mBackgroundHandler.post(new ImageSaver(reader.acquireLatestImage(), mFile));
}
其他一些关于SO的帖子建议可能不支持ImageReader格式。格式如下:
mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(),
ImageFormat.JPEG, /*maxImages*/2);
但我无法想象为什么JPEG是一种不受支持的格式
仍然在寻找答案 该示例应用程序没有Camera2API活动。java…line
1173
说了什么?@MartinZeitler抱歉,我现在更新了行号以匹配示例代码,使其更易于理解。我已经很久没有使用Camera2API了。但这是我的假设。如果我没记错的话,这个回调用于预览。不是为了拍摄的照片。大多数设备允许预览帧流为JPEG格式,但并非所有设备都允许。所有设备的格式都是de YUV格式。我想说你可以试着把格式改成YUV。
mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(),
ImageFormat.JPEG, /*maxImages*/2);