Java Camera.setParameters和setFocusAreas的运行时异常

Java Camera.setParameters和setFocusAreas的运行时异常,java,android,android-camera,Java,Android,Android Camera,我想用这个代码实现触摸聚焦 @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @Override public void touchFocus(Rect tfocusRect) { if (_.mCamera == null) return; // camera.stopFaceDetection();

我想用这个代码实现触摸聚焦

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
                @Override
                public void touchFocus(Rect tfocusRect) {
                    if (_.mCamera == null) return;


//                   camera.stopFaceDetection();

                     //Convert from View's width and height to +/- 1000
                  final Rect targetFocusRect = new Rect(
                    tfocusRect.left * 2000/sfv.getWidth() - 1000,
                    tfocusRect.top * 2000/sfv.getHeight() - 1000,
                    tfocusRect.right * 2000/sfv.getWidth() - 1000,
                    tfocusRect.bottom * 2000/sfv.getHeight() - 1000);

                  final List<Camera.Area> focusList = new ArrayList<Camera.Area>();
                  Camera.Area focusArea = new Camera.Area(targetFocusRect, 1000);
                  focusList.add(focusArea);
                  Parameters para = _.mCamera.getParameters();
                  Log.d(TAG,para.getMaxNumFocusAreas() + " >> " + tfocusRect.toString());


                  para.setFocusAreas(focusList);
                  para.setMeteringAreas(focusList);
                  _.mCamera.setParameters(para);//HERE THE ERROR

                 _.mCamera.autoFocus(myAutoFocusCallback);

                }
为什么??坐标是正确的。结果rect的值介于[-10001000]之间

安卓4.4.4

没有

          para.setFocusAreas(focusList);
          para.setMeteringAreas(focusList);

一切顺利。_uu.mCamera的另一个设置也可以使用。

“在使用此API或setFocusAreas(列表)之前,应用程序应该调用getMaxNumFocusAreas()以首先了解焦点区域的最大数量。如果该值为0,则不支持焦点区域。”我看到您打印了该值,它是什么?
          para.setFocusAreas(focusList);
          para.setMeteringAreas(focusList);