连续截屏java.lang.NullPointerException: it.acquireLatestImage() must not be null
fun takeScreenshot2Bitmap(): Bitmap? { imageReader?.let { val image: Image = it.acquireLatestImage() try { val bitmap = imageToBitmap(image) return bitmap } catch (e: Throwable) { return null } finally { image.close() } } ?: let { throw RuntimeException("Please request permission for screen recording first") } }
连续截屏时acquireLatestImage会来不及填充下一帧,返回null,此处会NullPointerException 建议改成: fun takeScreenshot2Bitmap(): Bitmap? { imageReader?.let { var image: Image? = null try { image = it.acquireLatestImage() val bitmap = imageToBitmap(image) return bitmap } catch (e: Throwable) { return null } finally { image?.close() } } ?: let { throw RuntimeException("Please request permission for screen recording first") } }
@ven-coder 大佬,#15 第二条有提到,但是没有修改