Fail to connect to camera service+hardware.Camera$PreviewCallback)' on a null object reference

报错手机
Nexus 5 Android 6.0 API23
报错日志

W/CameraBase: An error occurred while connecting to camera: 0
W/System.err: java.lang.RuntimeException: Fail to connect to camera service
W/System.err:     at android.hardware.Camera.<init>(Camera.java:495)
W/System.err:     at android.hardware.Camera.open(Camera.java:356)
W/System.err:     at com.tlhp.transparent.shadow.camera.cam.PreviewCamera.surfaceCreated(PreviewCamera.java:72)
W/System.err:     at android.view.SurfaceView.updateWindow(SurfaceView.java:582)
W/System.err:     at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:177)
W/System.err:     at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
W/System.err:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2055)
W/System.err:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
W/System.err:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
W/System.err:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
W/System.err:     at android.view.Choreographer.doCallbacks(Choreographer.java:670)
W/System.err:     at android.view.Choreographer.doFrame(Choreographer.java:606)
W/System.err:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:148)
W/System.err:     at com.safeguarding.freecamera.x.uncaughtException(Unknown Source)
W/System.err:     at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.tlhp.transparent.shadow.camera, PID: 19579
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.setPreviewCallback(android.hardware.Camera$PreviewCallback)' on a null object reference
        at com.tlhp.transparent.shadow.camera.cam.PreviewCamera.surfaceCreated(PreviewCamera.java:89)
        at android.view.SurfaceView.updateWindow(SurfaceView.java:582)
        at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:177)
        at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2055)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
        at android.view.Choreographer.doCallbacks(Choreographer.java:670)
        at android.view.Choreographer.doFrame(Choreographer.java:606)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.stopPreview()' on a null object reference
W/System.err:     at com.tlhp.transparent.shadow.camera.cam.PreviewCamera.surfaceChanged(PreviewCamera.java:89)
W/System.err:     at android.view.SurfaceView.updateWindow(SurfaceView.java:593)
W/System.err:     at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:177)
W/System.err:     at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
W/System.err:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2055)
W/System.err:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
W/System.err:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
W/System.err:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
W/System.err:     at android.view.Choreographer.doCallbacks(Choreographer.java:670)
W/System.err:     at android.view.Choreographer.doFrame(Choreographer.java:606)
W/System.err:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:148)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5417)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)

报错原因
https://developer.android.com/reference/android/hardware/Camera

This class was deprecated in API level 21.
We recommend using the new android.hardware.camera2 API for new applications. 

解决方案
Google都说在21以后要使用android.hardware.camera2 API
Google官方文档 https://developer.android.com/reference/android/hardware/camera2/package-summary.html
Google官方Camera2 demo https://github.com/googlesamples/android-Camera2Basic
参考文章 Camera2的使用https://www.cnblogs.com/wnpp/articles/7816962.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值