当前位置: 首页 > 知识库问答 >
问题:

相机随机崩溃与IllegalStateException

商皓
2023-03-14

我正在我的应用程序中使用CameraX API。我已经将预览用例和ImageAnalysis用例绑定到活动生命周期,如

preview.previewSurfaceProvider = frontFacingCameraPreviewSurface.previewSurfaceProvider
imageAnalysis.setAnalyzer(mainExecutor, myAnalyzer)
cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)

该应用程序大部分时间都可以工作,但会随机崩溃以下日志

2020-01-17 11:24:47.411 6581-6614/com。我的应用程序D/摄像头:重置捕获会话

2020-01-17 11:24:47.411 6581-6614/com.my.appD/相机:关闭状态下的释放会话

2020-01-17 11:24:47.413 6581-6955/com。我的应用程序D/表面:“n0x8d8e9000”(SurfaceTexture-0-6581-22)的setPackageUsesOwnResolution()(本机):false

2020-01-17 11:24:47.477 6581-6594/com.my.appI/camaManagerGlobal: postSingleUpdate设备:摄像机id 1状态STATUS_PRESENT

2020-01-17 11:24:47.478 6581-6594/com.my.appI/camaManagerGlobal: postSingleUpdate设备:摄像机id 1状态STATUS_PRESENT

2020-01-17 11:24:47.480 6581-6614/com。我的应用程序D/摄像头:正在关闭状态下释放会话

2020-01-17 11:24:47.480 6581-6614/com。我的应用程序D/摄像头:CameraDevice。onClosed():1

2020-01-17 11:24:47.486 6581-6614/com。我的应用程序E/AndroidRuntime:致命异常:CameraX-

Process: com.my.app, PID: 6581
java.lang.IllegalStateException
    at androidx.core.util.Preconditions.checkState(Preconditions.java:96)
    at androidx.core.util.Preconditions.checkState(Preconditions.java:108)
    at androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback.onClosed(Camera2CameraImpl.java:1298)
    at androidx.camera.camera2.internal.CameraDeviceStateCallbacks$ComboDeviceStateCallback.onClosed(CameraDeviceStateCallbacks.java:105)
    at android.hardware.camera2.impl.CameraDeviceImpl$5.run(CameraDeviceImpl.java:212)
    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.os.HandlerThread.run(HandlerThread.java:65)

异常主要发生在启动活动或关闭活动期间。知道为什么会这样吗?

共有1个答案

宋育
2023-03-14

我已通过使用更新版本的camerax库和预览解决了我的问题:

    def camerax_version = "1.0.0-beta03"
    implementation "androidx.camera:camera-camera2:${camerax_version}"
    // If you want to use the CameraX View class
    implementation "androidx.camera:camera-view:1.0.0-alpha10"
    // If you want to use the CameraX Extensions library
    implementation "androidx.camera:camera-extensions:1.0.0-alpha10"
    // If you want to use the CameraX Lifecycle library
    implementation "androidx.camera:camera-lifecycle:${camerax_version}"

有关更多信息,请访问此链接:https://issuetracker.google.com/issues/154070419

 类似资料:
  • 我有一个版本为2.1.2的Spring boot应用程序。释放在日志中没有任何特定信息的情况下,应用程序每个月或几周会崩溃一次。应用程序部署的服务器是CentOS 7版,应用程序由systemd服务启动。 尝试分析堆转储,没有运气,检查了postgres、tomcat等的日志。那里什么都没有。 堆栈跟踪: 有人知道我该怎么做吗?上次坠机是在那之前的3、4周。

  • 我使用CameraX用例在屏幕上显示来自摄像头的图像,同时对其执行对象检测。下面是与CameraX相关的代码,位于我的主要活动的onCreate()函数中。 尽管如此,我在一些(比如说1/5)应用程序初始化时遇到了一个错误,在工作和非工作情况之间没有任何代码或二进制修改: 如果我尝试不访问previewView.display以避免崩溃,我只是得到空裁剪的图像,直到我重新启动应用程序。 它似乎与视

  • 我正在从android设备库中选择一张图片,如下所示 并尝试获取,但是idx总是返回-1。我想知道我错过了什么。 清单文件 更新2:我甚至尝试了以下方法,path返回null

  • 我正在尝试允许用户用相机应用程序拍摄一张照片,然后在应用程序中显示它的预览。 我还需要在应用程序的稍后阶段访问该文件(但这不是一个问题) 我有以下崩溃: 完成时处理图像: 我不明白为什么它只是4.4.4的问题,而不是其他操作系统。 当出现崩溃时,它并没有说我的应用程序崩溃了,它说Camera已经停止工作了,并且我只能在没有过滤器的情况下查看日志时查看崩溃,这意味着崩溃不在我的应用程序中?

  • 我们正在调查另一个团队开发的一个应用程序,该应用程序在Android上与HereMaps(此处为SDK导航版,)相关的本机崩溃,其stacktrace如下: 编辑: 在代码中进行了一些重构和清理操作之后,我们已经达到了一个干净的状态,在这个状态下,我们确信没有任何泄漏;我们已经用LeakCanary调查并移除了所有这些,但本地崩溃仍然存在。 因此,我们试图回到basis,从github克隆了HER

  • 我正在尝试使用在Flutter上,它在Android模拟器上运行完美。但是当我尝试在我的真实设备上使用它时,当我点击按钮打开相机时,它崩溃了,没有给出任何错误。我该如何解决它?我的手机是Android(小米8)。 我的代码: