高通fastcv编译出现“android.view.WindowManager$BadTokenExcep

本文介绍了解决高通FastCV编译时出现的“Unabletoaddwindow”错误的方法。通过调整设定的屏幕分辨率与手机匹配,以及适配不同Android版本的代码修改,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高通fastcv编译出现“android.view.WindowManager$BadTokenException: Unable to add window”
最近在使用高通的FastCV,官方给出了一个Sample,可是第一次编译后出现以下错误信息:

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

....

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

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

 

  1.    protected void updatePreferences()
  2.    {
  3.       // Retrieve Preferences
  4.       SharedPreferences prefs = 
  5.          PreferenceManager.getDefaultSharedPreferences( getBaseContext() );
  6.       // set the default camera resolution to WVGA
  7.       mDesiredWidth = 320;
  8.       mDesiredHeight = 240;
  9.       // retrieves user preference to set the threshold for Fast
  10.       // Corner Detector algorithm 
  11.       int resIndex = 
  12.          Integer.decode( prefs.getString( "camThreshold", "3" ) );
  13.       if( resIndex < mPrefOptsFastThreshold.length )
  14.       {
  15.          Log.e( TAG, "Configured FastThreshold: " + resIndex );
  16.          mPrefThreshold = mPrefOptsFastThreshold[ resIndex ];
  17.          Log.e( TAG, "Configured Threshold: " + 
  18.                 mPrefThreshold );
  19.       }

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

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

  1. private void setupCamera()
  2.    {
  3.       // Now that the size is known, set up the camera parameters and begin
  4.       // the preview.
  5.       final Camera.Parameters parameters = mCamera.getParameters();
  6.  
  7.       parameters.setPreviewFrameRate( 30 );
  8.       parameters.setPreviewSize( mDesiredWidth, mDesiredHeight );
  9.       parameters.setFocusMode( Camera.Parameters.FOCUS_MODE_INFINITY );
  10.       parameters.setWhiteBalance( Camera.Parameters.WHITE_BALANCE_FLUORESCENT );
  11.       //mCamera.setParameters( parameters );
  12.  
  13.       mPreviewWidth = mCamera.getParameters().getPreviewSize().width;
  14.       mPreviewHeight = mCamera.getParameters().getPreviewSize().height;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值