Pretty new on this Android stuff and gets a NullPointException, which I cannot understand. I am trying to implement the onResume () method in my CameraActivity and have moved almost all the source code in onCreate () to onResume () and then will call onResume () in onCreate (). The activity worked fine when the code was in onCreate (), but when placed in onResume () the exception was arsises. What causes this?
package com.example.tensioncamapp_project; import java.io.IOException; import android.content.Context; import android.hardware.Camera; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { private static final String TAG = "PreviewAactivity"; private SurfaceHolder mHolder; private Camera mCamera; public CameraPreview(Context context, Camera camera) { super(context); this.mCamera = camera;
and my CameraActivityClass
package com.example.tensioncamapp_project; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Date; import java.text.SimpleDateFormat; import android.content.Intent; import android.app.Activity; import android.graphics.Bitmap; import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.hardware.Camera.PictureCallback; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.ImageView; public class CameraActivity extends Activity { private ImageButton captureButton; private Camera mCamera; private CameraPreview mPreview; private PictureCallback mPicture; private ImageView imageView; private static final int STD_DELAY = 400; private static final int MEDIA_TYPE_IMAGE = 1; protected static final String TAG = "CameraActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_camera); onResume(); } private void addListenerOnButton() { this.captureButton = (ImageButton) findViewById(R.id.button_capture_symbol); this.captureButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View capturebutton) { mCamera.takePicture(null, null, mPicture); delay(); Intent viewPic = new Intent(CameraActivity.this, ViewPicActivity.class); startActivity(viewPic); } }); } public static Camera getCameraInstance(){ Camera c = null; try {
Cat Log:
05-21 14:32:05.424: D/OpenGLRenderer(1030): Enabling debug mode 0 05-21 14:32:10.986: E/CameraActivity(1030): camera not availableFail to connect to camera service 05-21 14:32:11.033: I/Choreographer(1030): Skipped 66 frames! The application may be doing too much work on its main thread. 05-21 14:32:11.203: W/EGL_emulation(1030): eglSurfaceAttrib not implemented 05-21 14:32:13.013: D/AndroidRuntime(1030): Shutting down VM 05-21 14:32:13.013: W/dalvikvm(1030): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 05-21 14:32:13.083: E/AndroidRuntime(1030): FATAL EXCEPTION: main 05-21 14:32:13.083: E/AndroidRuntime(1030): java.lang.NullPointerException 05-21 14:32:13.083: E/AndroidRuntime(1030): at com.example.tensioncamapp_project.CameraPreview.surfaceCreated(CameraPreview.java:33) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.SurfaceView.updateWindow(SurfaceView.java:569) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.SurfaceView.access$000(SurfaceView.java:86) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:174) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:680) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1842) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.Choreographer.doFrame(Choreographer.java:532) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.os.Handler.handleCallback(Handler.java:725) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.os.Handler.dispatchMessage(Handler.java:92) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.os.Looper.loop(Looper.java:137) 05-21 14:32:13.083: E/AndroidRuntime(1030): at android.app.ActivityThread.main(ActivityThread.java:5041) 05-21 14:32:13.083: E/AndroidRuntime(1030): at java.lang.reflect.Method.invokeNative(Native Method) 05-21 14:32:13.083: E/AndroidRuntime(1030): at java.lang.reflect.Method.invoke(Method.java:511) 05-21 14:32:13.083: E/AndroidRuntime(1030): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 05-21 14:32:13.083: E/AndroidRuntime(1030): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 05-21 14:32:13.083: E/AndroidRuntime(1030): at dalvik.system.NativeStart.main(Native Method)
source share