我有一个带有按钮的小部件,可启用相机服务。
它工作得很好,但是过了一段时间(也许在主屏幕应用程序退出的情况下),它失去了状态(打开或关闭)。
我认为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
答案 0 :(得分:2)
看起来像您当前类(this
中的某个地方一样,它自己的上下文已为空,这就是为什么要获得NPE的原因。
但是由于变量(if(context == null) return;
中有100%非空上下文,为什么不使用它而不是this
自己的上下文?:
mCameraManager = (CameraManager)context.getSystemService(Context.CAMERA_SERVICE);