getSystemService(Context.CAMERA_SERVICE)崩溃

时间:2018-07-16 15:56:57

标签: android android-camera android-widget

我有一个带有按钮的小部件,可启用相机服务。

它工作得很好,但是过了一段时间(也许在主屏幕应用程序退出的情况下),它失去了状态(打开或关闭)。

我认为NullPointerException的{​​{1}}崩溃了。真的很难复制,到目前为止,我还没有找到导致崩溃的顺序。

Context.CAMERA_SERVICE

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference at android.content.ContextWrapper.getSystemService(ContextWrapper.java:714) at com.widget.tst.Widget.CallbackWidgetService.isCameraInUse(CallbackWidgetService.java:163) at com.widget.tst.Widget.CallbackWidgetService.startCameraInUse(CallbackWidgetService.java:242) //** button click--> at com.widget.tst.Widget.CameraWidgetReceiver.updateWidgetButton(CameraWidgetReceiver.java:55) at com.widget.tst.Widget.CameraWidgetReceiver.onReceive(CameraWidgetReceiver.java:32) at android.app.ActivityThread.handleReceiver(ActivityThread.java:3632) at android.app.ActivityThread.-wrap18(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)  at android.os.Handler.dispatchMessage(Handler.java:109)  at android.os.Looper.loop(Looper.java:166)  at android.app.ActivityThread.main(ActivityThread.java:7367)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963) 如何为空?

Context.CAMERA_SERVICE

1 个答案:

答案 0 :(得分:2)

看起来像您当前类(this中的某个地方一样,它自己的上下文已为空,这就是为什么要获得NPE的原因。

但是由于变量(if(context == null) return;中有100%非空上下文,为什么不使用它而不是this自己的上下文?:

mCameraManager = (CameraManager)context.getSystemService(Context.CAMERA_SERVICE);