Android摄像头活动类-实现SurfaceView-问题

Android摄像头活动类-实现SurfaceView-问题,android,android-camera,Android,Android Camera,我试图使用SurfaceView类创建Camera活动类,但它给了我错误 这是我的错误日志 08-28 12:21:11.558: E/AndroidRuntime(989): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.cameraapp/com.example.cameraapp.CameraSurfaceView}: java.lang.InstantiationE

我试图使用SurfaceView类创建Camera活动类,但它给了我错误

这是我的错误日志

08-28 12:21:11.558: E/AndroidRuntime(989): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.cameraapp/com.example.cameraapp.CameraSurfaceView}: java.lang.InstantiationException: com.example.cameraapp.CameraSurfaceView
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.os.Handler.dispatchMessage(Handler.java:99)
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.os.Looper.loop(Looper.java:123)
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.app.ActivityThread.main(ActivityThread.java:3683)
08-28 12:21:11.558: E/AndroidRuntime(989):  at java.lang.reflect.Method.invokeNative(Native Method)
08-28 12:21:11.558: E/AndroidRuntime(989):  at java.lang.reflect.Method.invoke(Method.java:507)
08-28 12:21:11.558: E/AndroidRuntime(989):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-28 12:21:11.558: E/AndroidRuntime(989):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-28 12:21:11.558: E/AndroidRuntime(989):  at dalvik.system.NativeStart.main(Native Method)
08-28 12:21:11.558: E/AndroidRuntime(989): Caused by: java.lang.InstantiationException: com.example.cameraapp.CameraSurfaceView
08-28 12:21:11.558: E/AndroidRuntime(989):  at java.lang.Class.newInstanceImpl(Native Method)
08-28 12:21:11.558: E/AndroidRuntime(989):  at java.lang.Class.newInstance(Class.java:1409)
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
08-28 12:21:11.558: E/AndroidRuntime(989):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
08-28 12:21:11.558: E/AndroidRuntime(989):  ... 11 more
这是我的CameraSurface活动:

package com.example.cameraapp;

import java.io.IOException;

import android.content.Context;
import android.view.SurfaceView;
import android.view.SurfaceHolder;
import android.hardware.Camera;

public class CameraSurfaceView extends SurfaceView implements SurfaceHolder.Callback
{
        private SurfaceHolder holder;
        private Camera camera;

        public CameraSurfaceView(Context context) 
        {
                super(context);

                //Initiate the Surface Holder properly
                this.holder = this.getHolder();
                this.holder.addCallback(this);
                this.holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        }

        public void surfaceCreated(SurfaceHolder holder) 
        {
                try
                {
                        //Open the Camera in preview mode
                        this.camera = Camera.open();
                        this.camera.setPreviewDisplay(this.holder);
                }
                catch(IOException ioe)
                {
                        ioe.printStackTrace(System.out);
                }
        }

        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 
        {
                // Now that the size is known, set up the camera parameters and begin
                // the preview.
                Camera.Parameters parameters = camera.getParameters();
                parameters.setPreviewSize(width, height);
                camera.setParameters(parameters);
                camera.startPreview();
        }



        public void surfaceDestroyed(SurfaceHolder holder) 
        {
                // Surface will be destroyed when replaced with a new screen
                //Always make sure to release the Camera instance
                camera.stopPreview();
                camera.release();
                camera = null;
        }

        public Camera getCamera()
        {
                return this.camera;
        }
}
在清单中,我也定义了权限

    android:targetSdkVersion="15" />
    <uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
android:targetSdkVersion=“15”/
现在,请指导我可能的解决方案

谢谢


Shumaila

错误发生在
摄像机中。设置参数(宽度、高度)

查看此主题:

在获得最佳相机尺寸后,需要设置相机的预览尺寸。下面是修复程序的详细信息和代码-


您没有显示堆栈跟踪的重要部分。再往下看,它会显示为什么它没有实例化你的活动。你能在你创建这个类的对象的地方发布代码吗?@Saen堆栈跟踪上没有更多的错误,因为我单击“11 more”,它不会显示任何错误。我的意思是说你的活动代码。。在何处创建CameraSurfaceView的对象?