运算符 && 未定义参数类型 boolean, int

The operator && is undefined for the argument type(s) boolean, int

Eclipse 显示错误 The operator && is undefined for the argument type(s) boolean, int 这里出了什么问题以及如何解决这个问题?我必须使用此代码来修复 Android 中的前置摄像头倒置问题 4.

public static Bitmap createRotatedBitmap(Bitmap bm, float degree) {
    Bitmap bitmap = null;
    if (degree != 0) {
        Matrix matrix = new Matrix();
        matrix.preRotate(degree);

        if(android.os.Build.VERSION.SDK_INT>13 && Camera.CameraInfo.CAMERA_FACING_FRONT)
        {
            float[] mirrorY = { -1, 0, 0, 0, 1, 0, 0, 0, 1};
            matrix = new Matrix();
            Matrix matrixMirrorY = new Matrix();
            matrixMirrorY.setValues(mirrorY);

            matrix.postConcat(matrixMirrorY);

            matrix.preRotate(270);

        }

        bitmap = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
    }

    return bitmap;
}

值 Camera.CameraInfo.CAMERA_FACING_FRONT 是一个整数值,您只能将逻辑运算符用作 && 和布尔值

尝试使用Camera.CameraInfo.facing.equals(Camera.CameraInfo.CAMERA_FACING_FRONT)

Camera.CameraInfo.CAMERA_FACING_FRONT 是一个整数,所以您实际上想要做的是

if (true && 1) ...

仔细阅读Camera的文档,了解如何正确使用它。您需要为返回的每个 ID 调用 "getNumberOfCameras",然后调用 "getCameraInfo"。

我也遇到了同样的问题 problem.hopefully 我能够解决 it.see 首先它的编译 issue.the && java 中的运算符需要布尔值 expressions/values 操作 upon.note:所有操作数必须是布尔值 type.now 进入你的 question.in 以下行: 如果(android.os.Build.VERSION.SDK_INT>13 &&Camera.CameraInfo.CAMERA_FACING_FRONT) (android.os.Build.VERSION.SDK_INT>13) 是一个布尔表达式,结果为真或假,但 (Camera.CameraInfo.CAMERA_FACING_FRONT) 在一个 int 类型,所以编译器给出 issue.to 修复这个尝试在第二个参数中给出一个布尔表达式而不是直接给出一个 int 类型值,问题就会消失。