2011-11-15 1 views
0

SurfaceCreatedのsetPreviewDisplay(holder)でアプリケーションがクラッシュする(何かが始まる前に強制終了され、その後アプリケーションが終了するダイアログが表示される)、理由を特定できません。 お知らせください。以下は私のコードです。 surfaceCreatedでSurfaceViewクラッシュを使用するカメラアプリケーション

public void onCreate(Bundle savedInstanceState) { 
     cameraPreview = new CameraPreview();//CameraPreview has a methos to open the Camera 
     cameraObject = CameraPreview.getCameraInstance(); 
     mHolder = previewSurface.getHolder();//previewSurface is the SurfaceView declared in XML and then I'm doinf findViewById 
     mHolder.addCallback(this); 

} 

    public void surfaceCreated(SurfaceHolder holder) {   

    // The Surface has been created, now tell the camera where to draw the preview.  
    try {   
      cameraObject.setPreviewDisplay(holder); //CRASHES HERE   
      //cameraObject.startPreview();  
     } catch (IOException e) { 
      Log.d(TAG, "Error setting camera preview: " + e.getMessage());  
     } 
} 

public void surfaceDestroyed(SurfaceHolder holder) {  
    // empty. Take care of releasing the Camera preview in your activity.  
} 

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 
     // If your preview can change or rotate, take care of those events here.  
     // Make sure to stop the preview before resizing or reformatting it.   
     if (mHolder.getSurface() == null){   
      // preview surface does not exist   
       return;   
      }   
     // stop preview before making changes  
     try {    
      cameraObject.stopPreview();  
      } catch (Exception e){   
        // ignore: tried to stop a non-existent preview  
      }  
      // make any resize, rotate or reformatting changes here  
      // start preview with new settings  
      try {   
       cameraObject.setPreviewDisplay(mHolder);  
       cameraObject.startPreview();   
       } catch (Exception e){  
         Log.d(TAG, "Error starting camera preview: " + e.getMessage());  
       } 
} 

+1

ログエラーを指定してください。あなたは何を例外? – user370305

+0

アプリがクラッシュした場所のlogcatからエラースタックトレースを提供してください – Maneesh

答えて

0

、ちょうどsetPreviewDisplay前に、それはカメラのオブジェクトにしたメソッドを呼び出して、その後Camera.openを必要と。 これらの2つの間に他のステートメントはありません。それ以外の場合はクラッシュします。

関連する問題