Android開発者チュートリアルに基づいたシンプルなカメラアプリを開発していますが、実行に問題があります。
これが私のLogCatの印刷物です。
NullPointerException を追跡して、CameraPreview の 30 行目にあることを確認したので、CameraPreview のコードを以下に示します。私はJavaでコードを書くことができ、NullPointerがまだ作成されていない何かがあるときであることを知っていますが、私が知る限り、作成されています。
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback{
private SurfaceHolder mHolder;
private Camera mCamera;
private static final String TAG = "Preview";
@SuppressWarnings("deprecation")
public CameraPreview(Context context, Camera camera){
super(context);
mCamera = camera;
//Install callback to get notifications from the app
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); //deprecated but required for Android Version 3.0 and under
}
public void surfaceCreated(SurfaceHolder holder) {
//Surface been created now need to tell app where to draw PREVIEW
try{
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
}
catch(IOException e){
Log.d(TAG, "Camera preview error: " + e.getMessage());
}
}
30行目はコードスニペットです -mCamera.setPreviewDisplay(holder);
私が言えることは、「グローバル」変数に mCamera のインスタンスがあるということですprivate Camera mCamera
。
誰でもアイデアはありますか?申し訳ありませんが、できる限りフォーマットされた長い質問です。
ありがとう、ダン
PSこのクラスには他にも必要なメソッドがあることを知っていますが、これは単なる「問題の断片」です。