2013-06-02 51 views
0

我也在市場上推出了該應用程序。我從其中一位用戶那裏收到一條錯誤消息,說他在打開相機時出現錯誤。android camera.setParameters failed

i have the same problem

,所以我嘗試替換此代碼:

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. 



     Log.d(TAG, "surfaceChanged to " + "," + w + "," + h); 

     if (mHolder.getSurface() == null){ 
      // preview surface does not exist 
      return; 
     } 

     // stop preview before making changes 
     try { 
      mCamera.stopPreview(); 
     } catch (Exception e){ 
      // ignore: tried to stop a non-existent preview 
     } 

     // set preview size and make any resize, rotate or 
     // reformatting changes here 

     // start preview with new settings 
     try { 
      mCamera.setPreviewDisplay(mHolder); 
      mCamera.startPreview(); 

     } catch (Exception e){ 
      Log.d(TAG, "Error starting camera preview: " + e.getMessage()); 
     } 
    } 

這個代碼:

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 
     Camera.Parameters parameters = mCamera.getParameters(); 
    //  List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes(); 

     // You need to choose the most appropriate previewSize for your app 
     Camera.Size previewSize = parameters.getPreferredPreviewSizeForVideo(); // .... select one of previewSizes here 

     parameters.setPreviewSize(previewSize.width, previewSize.height); 
     mCamera.setParameters(parameters); 
     mCamera.startPreview(); 
    } 

我得到的NullPointerException錯誤

即使我不關心顯示器改變因爲它只有風景

android:screenOrientation="landscape" 

回答

1

在鏈接文章的例外是造成嘗試設置不支持預覽大小RuntimeException。但在你的情況下,這是一個NullException。可能你的mCamera對象沒有初始化。