最近在项目遇到个java.lang.NumberFormatException 类型的异常报错,很奇葩,把我都看蒙了,也不是必现的;
具体报错如下:
对应地方的代码是:
mCurrentCameraId 是字符型,并且是不为空的,值不是1就是0; lastSubLightValue是int型定义为了-1
@Override
protected void onProgressUpdate(String... values) {
int subLightLevel = Integer.parseInt(values[0]);
boolean isCovered = subLightLevel == (mSubcameraType == SUBCAMERA_TYPE_REAL_CAM ? 1 : 0);
if(isCovered && !CameraUtil.isCameraFacingFront(mApp.getActivity(), mCurrentCameraId)
&& subLightLevel == lastSubLightValue
&& "Portrait".equals(mCurrentModeType)){
if (!isHintShow) {
showScreenHint(mOcclusionHint);
isHintShow = true;
}
} else {
hideScreenHint(mOcclusionHint);
isHintShow = false;
}
lastSubLightValue = subLightLevel;
}
其中isCameraFacingFront方法是有个isCameraFacingFront(context, Integer.parseInt(mCurrentCameraId))做转换
为什么if条件中 把&& subLightLevel == lastSubLightValue 一同当作字符先给我带入前面的 转换的条件中去了,
就很奇葩