2015-02-10 328 views
0

失败,我对LG电子的Nexus 5这个错误(安卓5.0.1(Android的-21))Android摄像头在旋转

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.lock()' on a null object reference 
    at video.LayRecordVideo.releaseMediaRecorder(LayRecordVideo.java:511) 
    at video.LayRecordVideo.stopRecord(LayRecordVideo.java:569) 
    at video.LayRecordVideo.access$3(LayRecordVideo.java:554) 
    at video.LayRecordVideo$1.handleMessage(LayRecordVideo.java:249) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5221) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

private void releaseMediaRecorder() 
    { 
     if (mMediaRecorder != null) 
     { 
      mMediaRecorder.reset(); // clear recorder configuration 
      mMediaRecorder.release(); // release the recorder object 
      mMediaRecorder = null; 
      mCamera.lock(); // this is line 511 
     } 
    } 

感谢您的帮助!

回答

0

最简单的修复方法是在AndroidManifest.xml文件中将android:configChanges="orientation|screenSize"添加到您的活动中。例如:

<activity 
android:name=".YourActivity" 
android:configChanges="orientation|screenSize" /> 

它会阻止配置更改(例如旋转屏幕)时重新创建活动。另一种解决方案可能是在您的活动中自行处理onConfigurationChanged(Configuration newConfig)方法中的配置更改。

我不确定此解决方案是否有帮助。

+0

但是这个android:configChanges,活动会旋转吗? – benoffi7 2015-02-10 13:18:35

+0

您将能够旋转屏幕,但不会重新创建活动。它可能会修复你的崩溃,但我不确定。你可以检查它。 – 2015-02-10 13:20:17