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

RuntimeException:无法连接到camera服务?

司空福
2023-03-14

E/AndroidRuntime:致命异常:main java.lang.Runtime异常:无法连接到Android.Hardware.camera.Native_Setup(本机方法)(Android.Hardware.camera.Open(camera.java:423)(Android.Hardware.camera.Open)(camera.java:384)(ge.baqari.dev.capture.ui.view.CameraView.SurfaceChanged(CameraView.kt:39)(Android.View.SurfaceView.UpdateWindow(8)在android.view.choreographer$FrameDisplayEventReceiver.Run(choreographer.java:762)在android.os.handler.handleCallback(handler.java:725)在android.os.handler.dispatchMessage(handler.java:92)在android.os.handler.dispatchMessage(handler.java:153)在android.app.activitythread.main(activitythread.java:5341)在

我找到了很多答案,但没有一个对我有帮助,我正在尝试创建自定义相机视图,实现表面保持器,但它总是崩溃与camera.open()方法,有参数和没有参数相同,崩溃

class CameraView : android.view.SurfaceView, android.view.SurfaceHolder.Callback {

    var camera: android.hardware.Camera? = null
    var previewing = false
    var cameraCallback: CameraCallBack? = null
    var pictureCallback: PictureCallback? = null
    var cameraParameters: android.hardware.Camera.Parameters? = null

    private fun init() {
        holder.addCallback(this)
        holder.setType(SURFACE_TYPE_NORMAL)
    }

    constructor(context: android.content.Context, attrs: android.util.AttributeSet) : super(context, attrs) {
        init()
    }

    override fun surfaceCreated(surfaceHolder: android.view.SurfaceHolder) {

    }

    override fun surfaceChanged(surfaceHolder: android.view.SurfaceHolder, i: Int, i1: Int, i2: Int) {
        if (context.packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)){
            if (previewing) {
                camera?.stopPreview()
                previewing = false
            }

            if (camera == null) {
                try {
                    camera = Camera.open(android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK)
                    cameraParameters!!.setPreviewSize(i1, i2)
                    camera!!.parameters = cameraParameters!!
                    camera!!.startPreview()
                    camera!!.setPreviewDisplay(holder)
                    previewing = true
                } catch (e: java.io.IOException) {
                    e.printStackTrace()
                }
            }
        }
    }

    override fun surfaceDestroyed(surfaceHolder: android.view.SurfaceHolder) {
        camera!!.stopPreview()
        camera!!.release()
        previewing = false;
    }
}

共有1个答案

邓俊材
2023-03-14

在CameraParameters中出现问题,参数为空,而您试图设置空参数

修复:

camera = Camera.open(android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK)
cameraParameters = camera!!.parameters
cameraParameters!!.setPreviewSize(i1, i2)
camera!!.parameters = cameraParameters!!
camera!!.startPreview()
camera!!.setPreviewDisplay(holder)

您还可以使用此库进行相机预览

 类似资料:
  • 我在设置打开班次时遇到问题,并在连接到我的服务器域后收到以下错误: 我不确定这是在告诉我做什么。我尝试按字面意思使用指令,但它无法识别命令。 有什么想法吗?

  • 问题内容: 我不确定如何解决此问题 我不知道为什么在尝试以下操作时会出现此错误: 当我尝试连接到postgres时: 问题答案: 可能是一些问题: PostgreSQL没有运行。用sudo检查 你的PostgresSQl不在端口5432上运行。你可以检查其键入 尝试连接到数据库时出现错误,例如用户名,密码或数据库名。检查它们是否是postgres要求你连接的对象,并且这是你要访问的db_name。

  • 在我做了和之后,我的postgres遇到了一些问题。我试着卸载postgres并重新安装它,但它并没有那么好用。 这就是我所做的: 现在,在我重新安装homebrew之后,当我使用时,它不显示任何错误消息。 但是我在我的Rails应用程序中运行,它显示: 更新 这对我也管用。

  • 注意:连接是LAN,在隧道模式下工作正常,但速度较慢

  • 问题内容: 我正在尝试使用Flask在Raspberry Pi上运行一个简单的Web服务器。当我运行Flask应用程序时,它说: 在http://127.0.0.1:5000/上运行 但是,当我在笔记本电脑的Chrome中输入此地址时, ERR_CONNECTION_REFUSED 我可以在Raspberry Pi的浏览器上打开127.0.0.1:5000。我需要怎么做才能从另一台计算机连接? 问