2

我一直在尝试使用 API 在 Eclipse for Android 上编写相机应用程序 - 我从下面的链接中获得了这个示例,但是在创建 SurfaceView(下面称为预览)时,该应用程序似乎因 Nullpointerexception 而崩溃。

真的非常感谢任何帮助..我正在尝试学习android相机API并整天坚持这个!

这些是 MainWindow.java 中的几行,它是主要的 Activity...它输出 1 和 2,然后终止。

    Log.i(TAG, "1");
    preview = new Preview(this);
    Log.i(TAG, "2 " + R.id.preview);
    ((FrameLayout) findViewById(R.id.preview)).addView(preview);
    Log.i(TAG, "3");

    buttonClick = (Button) findViewById(R.id.buttonClick);
    Log.i(TAG, "4");
    buttonClick.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Log.i(TAG, "5");
            preview.camera.takePicture(shutterCallback, rawCallback,jpegCallback);
        }
    });

这些是 Preview.java 的前几行

public class Preview extends SurfaceView implements SurfaceHolder.Callback {

private static final String TAG = "PreviewClass";

SurfaceHolder mHolder;
public Camera camera;

Preview(Context context) {
    super(context);
    // Install a SurfaceHolder.Callback so we get notified when the
    // underlying surface is created and destroyed.
    Log.i(TAG, "11");   
    mHolder = getHolder();
    Log.i(TAG, "12");
    mHolder.addCallback(this);
    Log.i(TAG, "13");
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    Log.i(TAG, "trying pre 15");
    camera = Camera.open();
    try
    {
        Log.i(TAG, "15");
4

0 回答 0