2013-04-08 58 views
1

我有以下代码:相机NullPointerException异常误差参数

Line Code 
193 private Camera mCamera; 
<!-- NO CALLS TO mCamera HERE --> 
229 mCamera = Camera.open(); 
230 Camera.Parameters p = mCamera.getParameters(); 

当我运行应用程序,我得到以下堆栈跟踪:

04-08 20:56:45.330: E/AndroidRuntime(570): FATAL EXCEPTION: main 
04-08 20:56:45.330: E/AndroidRuntime(570): java.lang.NullPointerException 
04-08 20:56:45.330: E/AndroidRuntime(570): at com.soloman.cbc.FullscreenActivity$MySurfaceView.surfaceCreated(FullscreenActivity.java:230) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.SurfaceView.updateWindow(SurfaceView.java:569) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.SurfaceView.access$000(SurfaceView.java:86) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:174) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:680) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1842) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.Choreographer.doFrame(Choreographer.java:532) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.os.Handler.handleCallback(Handler.java:725) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.os.Looper.loop(Looper.java:137) 
04-08 20:56:45.330: E/AndroidRuntime(570): at android.app.ActivityThread.main(ActivityThread.java:5039) 
04-08 20:56:45.330: E/AndroidRuntime(570): at java.lang.reflect.Method.invokeNative(Native Method) 
04-08 20:56:45.330: E/AndroidRuntime(570): at java.lang.reflect.Method.invoke(Method.java:511) 
04-08 20:56:45.330: E/AndroidRuntime(570): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
04-08 20:56:45.330: E/AndroidRuntime(570): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
04-08 20:56:45.330: E/AndroidRuntime(570): at dalvik.system.NativeStart.main(Native Method) 

我使用的代码是从How can I manipulate the camera preview?

我有CAMERA permissionAndroidManifest.xml,和所有imports都占。有没有人有任何建议如何解决这个错误?

谢谢。

+0

你在哪里试图打开相机? 内表面创建函数? 如果你可以发布你正在调用这个方法的函数,那么给出一个答案会很有帮助 – 2013-04-08 11:16:19

回答

3

在设备上,而不朝后相机Camera.open()返回null。尝试Camera.open(0)以获得前置摄像头。

+1

可能就是这样!我使用nexus 7进行测试,所以没有后置摄像头:'( – JosephGarrone 2013-04-08 11:22:14

1

如果机器人版本早于3.0使用

getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);