java.lang.IllegalStateException:CameraX尚未初始化 [英] java.lang.IllegalStateException: CameraX not initialized yet

查看:329
本文介绍了java.lang.IllegalStateException:CameraX尚未初始化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在关注有关CameraX的Google Codelab

然后当我涉及添加摄像机预览的部分时,我是这样做的:

And when I get to the part of adding a Camera preview, I do it like this:

val previewConfig = PreviewConfig.Builder().apply {
            setTargetAspectRatio(Rational(1, 1))
            setTargetResolution(Size(640, 640))
            setLensFacing(CameraX.LensFacing.BACK)
        }.build()

        val preview = Preview(previewConfig)

        preview.setOnPreviewOutputUpdateListener { previewOutput ->
            val parent = previewView.parent as ViewGroup
            parent.removeView(previewView)
            parent.addView(previewView, 0)

            previewView.surfaceTexture =     previewOutput.surfaceTexture
        updateTransform()
        }


        CameraX.bindToLifecycle(this, preview)

然后出现以下错误:

java.lang.ExceptionInInitializerError
        at androidx.camera.core.Preview.<clinit>(Preview.java:55)
        at com.grow.vision.ImagePreviewActivity.startCamera(ImagePreviewActivity.kt:120)
        at com.grow.vision.ImagePreviewActivity.access$startCamera(ImagePreviewActivity.kt:28)
        at com.grow.vision.ImagePreviewActivity$onCreate$1.run(ImagePreviewActivity.kt:140)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7032)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
     Caused by: java.lang.IllegalStateException: CameraX not initialized yet.
        at androidx.camera.core.CameraX.getCameraDeviceSurfaceManager(CameraX.java:485)
        at androidx.camera.core.CameraX.getSurfaceManager(CameraX.java:282)
        at androidx.camera.core.Preview$Defaults.<clinit>(Preview.java:416)
        at androidx.camera.core.Preview.<clinit>(Preview.java:55)

似乎我需要以某种方式初始化CameraX,但是代码实验室或CameraX文档均未引用此类内容。

Seems like I need to initialise CameraX somehow but neither the codelab or the CameraX documentation references something like that.

以前有人遇到过这个问题吗?

Has someone had this issue before?

推荐答案

我很确定我找到了问题。
是否将Camera2添加到依赖项中?我忽略了它,认为没有必要,但这在指南中。我添加了它,该错误停止了。

I'm pretty sure I found the problem. Did you add Camera2 to your dependencies? I left it out thinking it wasn't necessary, but it's in the guide. I added it and that error stopped.

def camerax_version = "1.0.0-alpha01"
implementation "androidx.camera:camera-core:${camerax_version}"
implementation "androidx.camera:camera-camera2:${camerax_version}"

这篇关于java.lang.IllegalStateException:CameraX尚未初始化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆