首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.IllegalStateException: CameraX尚未初始化

java.lang.IllegalStateException: CameraX尚未初始化
EN

Stack Overflow用户
提问于 2019-05-20 20:23:26
回答 2查看 3.1K关注 0票数 7

我跟随着这个关于CameraX的

当我加入一个摄像机预览部分时,我会这样做:

代码语言:javascript
复制
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)

然后我得到以下错误:

代码语言:javascript
复制
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,但codelab或CameraX文档都没有引用类似的内容。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-22 17:41:14

我很确定我找到了问题。您将Camera2添加到依赖项中了吗?我把它忘了,以为没必要,但它在指南里。我加了它,错误就停止了。

代码语言:javascript
复制
def camerax_version = "1.0.0-alpha01"
implementation "androidx.camera:camera-core:${camerax_version}"
implementation "androidx.camera:camera-camera2:${camerax_version}"
票数 16
EN

Stack Overflow用户

发布于 2019-05-22 12:38:49

您的代码看起来与我的代码完全相同,但在初始化CameraX.unbindAll()和调用CameraX.bindtoLifeCycle()之前,我的代码顶部有一个Preview调用。我记得在我添加CameraX.unbindAll()之前看到了类似于您发布的错误,所以尝试一下吧?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56227684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档