2013-04-08 56 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);