尝试在Android Studio中编译项目时出现以下错误:
Gradle: error: diamond operator is not supported in -source 1.6
在我找到的所有项目偏好中,我已将1.7设置为目标 . 项目SDK中1.7 SDK下显示的路径也是java 1.7安装的正确路径 .
即使我在终端中运行java -version,它也告诉我我正在运行java 1.7 .
我试图将JAVA_HOME env变量设置为:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
错误不会消失 . 如何消除错误?
8 回答
在构建工具19中添加了Java 7支持 . 您现在可以使用诸如菱形运算符,多捕获,资源尝试,交换机中的字符串等功能 . 将以下内容添加到
build.gradle
.Gradle 1.7,Android gradle插件0.6 . 是必要的 .
请注意,仅尝试使用资源需要
minSdkVersion
19.其他功能适用于以前的平台 .Link to android gradle plugin user guide
Link to see how source vs target are different
也许这些答案都是旧的,但是对于新的Android Studios 1,您可以执行以下操作以查看在1.7上运行的模块(如果您愿意,可以使用1.6) . 单击文件 - >项目结构 . 选择要运行的模块,然后在“源兼容性”和“目标兼容性”下,选择1.7 . 单击“确定” .
你可以在新的Android工作室版本(0.8.X)中更改它
文件 - >其他设置 - >默认设置 - >编译器(通过单击左箭头展开) - > Java编译器 - >您可以在此处更改项目字节码版本
最新的Android Studio 1.4 .
单击文件 - >项目结构 - > SDK位置 - > JDK位置 .
您还可以通过转到模块(SDK位置下方)来设置单个模块JDK版本兼容性,并相应地编辑源兼容性 . (注意,这仅适用于Android模块) .
右键单击项目>打开模块设置>在“项目设置”部分中选择“项目”
将Project SDK更改为最新版(可能是API 21),将项目语言级别更改为7
目前,Android并不容易,但我发现Dalvic引擎是基于Apache Harmony的一个子集构建的,它只支持Java版本6.如果你检查system requirements开发Android应用程序,它还说明至少需要JDK 6(虽然这当然不是真正的证明,只是一个指示) . 和this说的几乎和我一样 . 如果我发现任何更多的资金,我会添加它 .
Edit: 自从我最初写这个答案以来,似乎已经添加了Java 7支持;检查Sergii Pechenizkyi的答案 .
始终使用最新的SDK版本来构建:
它确实 not affect runtime behavior ,但为您提供最新的编程功能 .
进入Gradle并查找 sourceCompatibility 并将其从 1.6 更改为 7 . 这至少对我有用 .
您也可以进入模块设置并将 Source/Target Compatibility 设置为1.7 .
Module settings window
这将在您的Gradle中生成以下代码: