8

将项目导入 Android Studio 后,如果我想编译或运行该项目,则会引发错误:

错误:(61, 65) java: diamond 运算符在 -source 1.6 中不受支持
(使用 -source 7 或更高版本来启用 diamond 运算符)

有谁知道它是什么以及如何解决它?

4

6 回答 6

13

在 Android Studio(文件 -> 项目结构...,属性选项卡)中,设置以下值:

Source Compatibility == 1.7
Target Compatibility == 1.7

在此处输入图像描述

在此之后,您的 build.gradle 将包含以下条目:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

在此处输入图像描述

于 2015-09-21T20:09:44.637 回答
7

在 Intellij Idea 中,您需要设置项目语言级别(所有模块的默认设置)和模块语言级别。

文件-->项目结构--> 在项目设置下--> 选择项目-->项目语言级别--> 选择7 - Diamons, ARM, multi-catch etc.8 - Lambdas, type annoationsetc。选项并单击应用

点击这里查看图片

于 2016-03-08T06:16:02.170 回答
2

几天前,我深受其害。只需更新您的 buildToolsVersion如下所示。并升级您的SDK

    android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
于 2015-03-23T07:35:55.237 回答
2

Diamond operator是 Jdk 7 的新特性之一。请确定您的 jdk 版本是否为 7。这是菱形运算符的示例。

这是一个赋值语句:

Map<String, List<String>> anagrams = new HashMap<String, List<String>>();

使用菱形运算符:

Map<String, List<String>> anagrams = new HashMap<>();

编辑

将其添加到您的build.gradle..

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 21
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

希望它对你有用。

于 2015-03-23T07:36:27.477 回答
2

在 Intellij 中,至少对我来说,问题是在“设置->构建、执行、部署->Java 编译器”下指定的每个模块的目标版本是错误的。在此处输入图像描述

希望这可以节省一些时间。

于 2017-07-22T17:52:29.227 回答
1

使用 Android KitKat (buildToolsVersion 19),您可以使用菱形运算符、multi-catch、开关中的字符串、尝试使用资源等。为此,请将以下内容添加到您的构建文件中:

android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"

        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 19
        }

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    }

请注意,对于除 try with resources 之外的所有语言功能,您都可以使用值早于 19 的 minSdkVersion。如果您想对资源使用 try,您还需要使用 19 的 minSdkVersion。

您还需要确保 Gradle 使用的是 JDK 1.7 或更高版本。(以及 0.6.1 或更高版本的 Android Gradle 插件。)

http://tools.android.com/tech-docs/new-build-system/user-guide

于 2015-03-23T07:42:20.653 回答