Android:Camera2API仅在谷歌Pixel2&;上崩溃;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

我正在我的一个应用程序中使用Camera2示例代码:

直到最近,该应用程序在图像捕获时崩溃,但仅在谷歌Pixel 2和Pixel 2 XL设备上运行良好

事故报告显示了以下内容:

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);