When I step through the code I get an error in Looper.loop() line:124
after the onCreate function.

On Aug 18, 12:26 am, Mark Murphy <mmur...@commonsware.com> wrote:
> Use adb logcat, DDMS, or the DDMS perspective in Eclipse to examine
> the Java stack trace associated with your error.
>
>
>
>
>
> On Wed, Aug 18, 2010 at 12:11 AM, Chris Maurer <cgmau...@gmail.com> wrote:
> > I have a HTC Incredible and I'm trying to write a simple application
> > to take a picture and save it on the SD card.  When I run the tutorial
> > athttp://github.com/commonsguy/cw-advandroid/tree/master/Camera/Picture
> > it works fine in the emulator.  However, when I try and test it on my
> > phone I get "The application Picture Demo (process
> > com.commonsware.android.camera) has stopped unexpectedly.  Please try
> > again."
>
> > I have set the following permissions in the AndroidManifest file.
>
> > <uses-feature android:name="android.hardware.camera" />
> > <uses-permission android:name="android.permission.CAMERA" />
> > <uses-permission
> > android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
>
> > Below is the code I am using.
>
> > import android.app.Activity;
> > import android.graphics.PixelFormat;
> > import android.hardware.Camera;
> > import android.os.AsyncTask;
> > import android.os.Bundle;
> > import android.os.Environment;
> > import android.util.Log;
> > import android.view.KeyEvent;
> > import android.view.SurfaceHolder;
> > import android.view.SurfaceView;
> > import android.widget.Toast;
> > import java.io.File;
> > import java.io.FileOutputStream;
>
> > public class PictureDemo extends Activity {
> >        private SurfaceView preview=null;
> >        private SurfaceHolder previewHolder=null;
> >        private Camera camera=null;
>
> >       �...@override
> >        public void onCreate(Bundle savedInstanceState) {
> >                super.onCreate(savedInstanceState);
> >                setContentView(R.layout.main);
>
> >                preview=(SurfaceView)findViewById(R.id.preview);
> >                previewHolder=preview.getHolder();
> >                previewHolder.addCallback(surfaceCallback);
> >                
> > previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
> >        }
>
> >       �...@override
> >        public boolean onKeyDown(int keyCode, KeyEvent event) {
> >                if (keyCode==KeyEvent.KEYCODE_CAMERA ||
> >                                keyCode==KeyEvent.KEYCODE_SEARCH) {
> >                        takePicture();
>
> >                        return(true);
> >                }
>
> >                return(super.onKeyDown(keyCode, event));
> >        }
>
> >        private void takePicture() {
> >                camera.takePicture(null, null, photoCallback);
> >        }
>
> >        SurfaceHolder.Callback surfaceCallback=new SurfaceHolder.Callback() {
> >                public void surfaceCreated(SurfaceHolder holder) {
> >                        camera=Camera.open();
>
> >                        try {
> >                                camera.setPreviewDisplay(previewHolder);
> >                        }
> >                        catch (Throwable t) {
> >                                Log.e("PictureDemo-surfaceCallback",
> >                                                        "Exception in 
> > setPreviewDisplay()", t);
> >                                Toast
> >                                        .makeText(PictureDemo.this, 
> > t.getMessage(), Toast.LENGTH_LONG)
> >                                        .show();
> >                        }
> >                }
>
> >                public void surfaceChanged(SurfaceHolder holder,
> >                                                                             
> >                                             int format, int width,
> >                                                                             
> >                                             int height) {
> >                        Camera.Parameters parameters=camera.getParameters();
>
> >                        parameters.setPreviewSize(width, height);
> >                        parameters.setPictureFormat(PixelFormat.JPEG);
>
> >                        camera.setParameters(parameters);
> >                        camera.startPreview();
> >                }
>
> >                public void surfaceDestroyed(SurfaceHolder holder) {
> >                        camera.stopPreview();
> >                        camera.release();
> >                        camera=null;
> >                }
> >        };
>
> >        Camera.PictureCallback photoCallback=new Camera.PictureCallback() {
> >                public void onPictureTaken(byte[] data, Camera camera) {
> >                        new SavePhotoTask().execute(data);
> >                        camera.startPreview();
> >                }
> >        };
>
> >        class SavePhotoTask extends AsyncTask<byte[], String, String> {
> >               �...@override
> >                protected String doInBackground(byte[]... jpeg) {
> >                        File photo=new 
> > File(Environment.getExternalStorageDirectory(),
> >                                                                             
> >                            "photo.jpg");
>
> >                        if (photo.exists()) {
> >                                photo.delete();
> >                        }
>
> >                        try {
> >                                FileOutputStream fos=new 
> > FileOutputStream(photo.getPath());
>
> >                                fos.write(jpeg[0]);
> >                                fos.close();
> >                        }
> >                        catch (java.io.IOException e) {
> >                                Log.e("PictureDemo", "Exception in 
> > photoCallback", e);
> >                        }
>
> >                        return(null);
> >                }
> >        }
> > }
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to android-developers@googlegroups.com
> > To unsubscribe from this group, send email to
> > android-developers+unsubscr...@googlegroups.com
> > For more options, visit this group at
> >http://groups.google.com/group/android-developers?hl=en
>
> --
> Mark Murphy (a Commons 
> Guy)http://commonsware.com|http://github.com/commonsguyhttp://commonsware.com/blog|http://twitter.com/commonsguy
>
> _The Busy Coder's Guide to Android Development_ Version 3.1 Available!

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to