我正在使用新的CameraX API(alpha 5)。
在LGE,三星,摩托罗拉,OPPO等设备上崩溃并显示以下消息:
Fail to find supported surface info - CameraId:null
发生。
这种崩溃很少见,但不能接受。
方法中发生错误:
private fun initCamera(cameraMode: CameraMode) {
val lensFacing = if (cameraMode == CameraMode.DEFAULT) CameraX.LensFacing.BACK else CameraX.LensFacing.FRONT
val metrics = DisplayMetrics().also { textureView?.display?.getRealMetrics(it) }
val resolution = Size(metrics.widthPixels,metrics.heightPixels)
val previewConfig = PreviewConfig.Builder()
.setTargetResolution(resolution)
.setLensFacing(lensFacing)
.build()
preview?.let { CameraX.unbind(preview) }
preview = Preview(previewConfig)
preview?.setOnPreviewOutputUpdateListener { previewOutput ->
val parent = textureView?.parent as ViewGroup
parent.removeView(textureView)
parent.addView(textureView,0)
textureView?.surfaceTexture = previewOutput.surfaceTexture
}
CameraX.bindToLifecycle(this,preview)
}
在线:
preview = Preview(previewConfig)
由于无法获取相机,它似乎无法为此设备创建预览。
有人知道这个问题的可能解决方法吗?
P.S: 我检查了。此设备(发生崩溃的设备型号)具有两个摄像头(前,后)。