将项目导入Android studio后,如果我想编译或运行该项目,则会抛出错误:
错误:(61,65)java:在源1.6中不支持菱形运算符 (使用-source 7或更高版本来启用菱形运算符)
有谁知道它是什么以及如何解决它?
答案 0 :(得分:13)
在Android Studio(文件 - >项目结构...,属性标签)中,设置以下值:
Source Compatibility == 1.7
Target Compatibility == 1.7
在此之后,您的build.gradle将包含以下条目:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
答案 1 :(得分:7)
在Intellij Idea中,您需要设置项目语言级别(所有模块的默认值)和模块语言级别。
档案 - > 项目结构 - >在项目设置下 - >选择项目 - > 项目语言水平 - >选择 7 - Diamons,ARM,multi-catch等。 或 8 - Lambdas,输入annoationsetc 。选项并点击应用
答案 2 :(得分: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
}
答案 3 :(得分: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
}
}
希望它对你有用。
答案 4 :(得分:2)
答案 5 :(得分:1)
使用Android KitKat(buildToolsVersion 19),您可以在开关中使用菱形运算符,多重捕获,字符串,尝试使用资源等。为此,请将以下内容添加到构建文件中:
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
请注意,除了尝试使用资源外,您可以将minSdkVersion的值设置为早于19的所有语言功能。如果你想使用try with resources,你还需要使用19的minSdkVersion。
您还需要确保Gradle使用的是JDK 1.7或更高版本。 (以及Android Gradle插件的0.6.1或更高版本。)
http://tools.android.com/tech-docs/new-build-system/user-guide