updateAndRelease: GLConsumer не привязан к контексту OpenGL ES

Я постоянно получаю эту ошибку, когда пытаюсь открыть камеру с помощью библиотеки CameraX. тот же код работает на другом устройстве меньше, чем пирог. но не работает на пироге (камера не показывает)

Вот мой код: и я также использую данные о жизни в своем проекте, может ли это вызвать какие-либо проблемы?

  val previewConfig = PreviewConfig.Builder()
            .setLensFacing(CameraX.LensFacing.BACK)
            .build()
    val preview = Preview(previewConfig)
    preview.setOnPreviewOutputUpdateListener { previewOutput ->
        _textureView.surfaceTexture = previewOutput.surfaceTexture
    }
    val imageAnalysisConfig = ImageAnalysisConfig.Builder()
        .build()
    val imageAnalysis = ImageAnalysis(imageAnalysisConfig)
    val qrCodeAnalyzer = QRCodeAnalyzer { qrCodes ->
        qrCodes.forEach {
            Log.d("MainActivity", "QR Code detected: `${it.rawValue}.")`
            val intent = intent.putExtra("RESULT",it.rawValue)
            setResult(Activity.RESULT_OK,intent)
            finish()
        }
    }

    imageAnalysis.analyzer = qrCodeAnalyzer

    // We need to bind preview and imageAnalysis use cases
    CameraX.bindToLifecycle(this as LifecycleOwner , preview, imageAnalysis)

Журналы: проверьте журналы, которые я получаю

 E/GLConsumer: [SurfaceTexture-0-3196-1] updateAndRelease: GLConsumer is not attached to an OpenGL ES context
E/GLConsumer: [SurfaceTexture-0-3196-1] updateAndRelease: GLConsumer is not attached to an OpenGL ES context
E/GLConsumer: [SurfaceTexture-0-3196-1] updateAndRelease: GLConsumer is not attached to an OpenGL ES context
E/GLConsumer: [SurfaceTexture-0-3196-1] updateAndRelease: GLConsumer is not attached to an OpenGL ES context

person Rishabh Rastogi    schedule 13.09.2019    source источник
comment
Я также получаю ту же ошибку. ты нашел какое-нибудь решение?   -  person Jayesh Babu    schedule 18.09.2019


Ответы (1)


У меня была аналогичная проблема. Я решаю эту проблему, удаляя и повторно добавляя SurfaceTexture, как предлагается здесь https://stackoverflow.com/a/56121351/11977949 .

Вы должны изменить setOnPreviewOutputUpdateListener на:

preview.setOnPreviewOutputUpdateListener {
    val parent = viewFinder.parent as ViewGroup
    parent.removeView(viewFinder)
    viewFinder.surfaceTexture = it.surfaceTexture
    parent.addView(viewFinder, 0)
    updateTransform()
}

Для получения дополнительных сведений см. официальный образец.

person Danijel    schedule 20.09.2019