使用相机后强制关闭

Force close after using camera

本文关键字:相机      更新时间:2023-09-26

请帮我解决这个问题,一旦我进入相机活动,我就无法恢复活动。-我的相机活动中有一个按钮,可以转到下一个活动,即我的OpenurlActivity。但当我点击后退按钮时,我的日志猫上出现了这个错误:

 08-15 17:49:55.518: E/AndroidRuntime(13628): FATAL EXCEPTION: main
 08-15 17:49:55.518: E/AndroidRuntime(13628): java.lang.RuntimeException: Unable to 
 resume activity {com.example.qrreader/com.example.qrreader.CameraTestActivity}:     
  java.lang.NullPointerException
 08-15 17:49:55.518: E/AndroidRuntime(13628):   at  
 android.app.ActivityThread.performResumeActivity(ActivityThread.java:2825)
 08-15 17:49:55.518: E/AndroidRuntime(13628):   at 
  android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2854)
  08-15 17:49:55.518: E/AndroidRuntime(13628):  at    
  android.app.ActivityThread$H.handleMessage(ActivityThread.java:1323)
 08-15 17:49:55.518: E/AndroidRuntime(13628):   at 
 android.os.Handler.dispatchMessage(Handler.java:99)
 08-15 17:49:55.518: E/AndroidRuntime(13628):   at 
 android.os.Looper.loop(Looper.java:137)
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
android.app.ActivityThread.main(ActivityThread.java:5293)
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
java.lang.reflect.Method.invokeNative(Native Method)
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
java.lang.reflect.Method.invoke(Method.java:511)
08-15 17:49:55.518: E/AndroidRuntime(13628):    at  
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
 08-15 17:49:55.518: E/AndroidRuntime(13628):   at 
dalvik.system.NativeStart.main(Native Method)
08-15 17:49:55.518: E/AndroidRuntime(13628): Caused by: java.lang.NullPointerException
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
com.example.qrreader.CameraTestActivity.onResume(CameraTestActivity.java:510)
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1202)
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
android.app.Activity.performResume(Activity.java:5328)
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
android.app.ActivityThread.performResumeActivity(ActivityThread.java:2815)
08-15 17:49:55.518: E/AndroidRuntime(13628):    ... 10 more

为什么会出现此错误?

在代码中的某个时刻,您正在将mCamera设置为null

它可能在onPauseonStop方法中,甚至在onStartonResume方法中。查看活动生命周期

08-15 17:49:55.518: E/AndroidRuntime(13628): Caused by: java.lang.NullPointerException
08-15 17:49:55.518: E/AndroidRuntime(13628):    at 
com.example.qrreader.CameraTestActivity.onResume(CameraTestActivity.java:510)

您必须在第510行检查变量是否为空。

我看到onResume调用的方法,相机为空

比你有什么问题,显然需要在那行之前初始化相机,并检查是否初始化。也许在onCreate。

尝试在onPause方法中重新设置相机

http://developer.android.com/training/camera/cameradirect.html#TaskReleaseCamera