2

API を使用して Android 用の Eclipse でカメラ アプリをコーディングしようとしました。この例は以下のリンクから取得しましたが、SurfaceView の作成中にアプリが Nullpointerexception でクラッシュするようです (以下ではプレビューと呼ばれます)。

助けてくれて本当に本当にありがとう..アンドロイドカメラAPIを学ぼうとしていて、一日中これに固執しています!

これらは、メインのアクティビティである MainWindow.java からの数行です... 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