高通fastcv编译出现“android.view.WindowManager$BadTokenException: Unable to add window”

最近在使用高通的FastCV,官方给出了一个Sample,可是第一次编译后出现以下错误信息:

 

android.view.WindowManager$BadTokenException: Unable to add window

....

差了很久都没有发现什么地方错,后来发现是官方的Sample中设定了屏幕分辨率,和我的手机不匹配

下面是官方的源代码:这是FastCVSample.java中的

   protected void updatePreferences()

   {

      // Retrieve Preferences

      SharedPreferences prefs = 

         PreferenceManager.getDefaultSharedPreferences( getBaseContext() );

 

      // set the default camera resolution to WVGA

      mDesiredWidth = 320;

      mDesiredHeight = 240;

 

      // retrieves user preference to set the threshold for Fast

      // Corner Detector algorithm 

      int resIndex = 

         Integer.decode( prefs.getString( "camThreshold", "3" ) );

      if( resIndex < mPrefOptsFastThreshold.length )

      {

         Log.e( TAG, "Configured FastThreshold: " + resIndex );

         mPrefThreshold = mPrefOptsFastThreshold[ resIndex ];

         Log.e( TAG, "Configured Threshold: " + 

                mPrefThreshold );

 

      }

 注意我标红色的地方,如果你的手机分辨率是800*640,那就没是,可是我的手机不好,只有320*240,改过来之后就可以了。

另外,在这个类中,还有一处

private void setupCamera()

   {

      // Now that the size is known, set up the camera parameters and begin

      // the preview.

      final Camera.Parameters parameters = mCamera.getParameters();

 

      parameters.setPreviewFrameRate( 30 );

      parameters.setPreviewSize( mDesiredWidth, mDesiredHeight );

      parameters.setFocusMode( Camera.Parameters.FOCUS_MODE_INFINITY );

      parameters.setWhiteBalance( Camera.Parameters.WHITE_BALANCE_FLUORESCENT );

      //mCamera.setParameters( parameters );

 

      mPreviewWidth = mCamera.getParameters().getPreviewSize().width;

      mPreviewHeight = mCamera.getParameters().getPreviewSize().height;


 同样注意标红出,对于android2.3+的机型来说,此处是要注释掉的。

你可能感兴趣的:(android,fastcv)