1

I have the following code:

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

And when I run the application I get the following stacktrace:

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)

The code I am using is from How can I manipulate the camera preview?

I have the CAMERA permission in the AndroidManifest.xml, and all imports are accounted for. Does anyone have any suggestions on how to fix this error?

Thank you.

Community
  • 1
  • 1
JosephGarrone
  • 4,081
  • 3
  • 38
  • 61
  • where are you trying to open the camera? Inside surface created function? If you can post the function where you are calling this method it would be helpful to give an answer – Amalan Dhananjayan Apr 08 '13 at 11:16

2 Answers2

3

On devices without back-facing camera Camera.open() returns null. Try Camera.open(0) to get front camera.

amukhachov
  • 5,822
  • 1
  • 41
  • 60
1

if the android version is prior to 3.0 use the

getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

Diogo Bento
  • 197
  • 2
  • 13