如何在 Android Studio 和 Gradle 设置1.7源代码

在 Android Studio 中编译我的项目时出现了以下错误:

Gradle: error: diamond operator is not supported in -source 1.6

在我找到的所有项目偏好中,我都设置了1.7作为目标。另外,在项目 SDK 的1.7下显示的路径是 java 1.7安装的正确路径。

即使我在终端中运行 java-version,它也会告诉我正在运行 java 1.7。

我尝试将 JAVA _ HOME env 变量设置为:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

错误不会消失。我如何消除错误?

130440 次浏览

目前,Android 不支持 Java7,只支持 Java6。因此,Java7中的新特性(如菱形语法)目前不受支持。 找到支持这一点的源代码并不容易,但是我可以发现 Dalvic 引擎是建立在 阿帕奇和谐的一个子集之上的,它只支持 Java 到版本6。如果你检查 系统要求开发 Android 应用程序,它还声明至少需要 JDK 6(尽管这当然不是真正的证据,只是一个指示)。这个跟我说的差不多。如果我发现任何更有价值的东西,我会加上的。

编辑: 自从我最初编写这个答案以来,Java7支持似乎已经被添加了; 请通过 Sergii Pechenizkyi检查这个答案。

Java7支持是在构建工具19中添加的。现在可以使用菱形操作符、 multi-catch、 try-with-resources、开关中的字符串等特性。将以下内容添加到 build.gradle

android {
compileSdkVersion 19
buildToolsVersion "19.0.0"


defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}


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

等级1.7 + ,Android 等级插件0.6. + 是必需的。

注意,只有尝试使用资源时才需要 minSdkVersion19。其他特性可以在以前的平台上使用。

链接到安卓级别插件用户指南

链接来看看源和目标是如何不同的

你可以在新的 Android 工作室版本(0.8.X)中修改它

文件-> 其他设置-> 默认设置-> 编译器(通过单击左箭头展开它)-> Java 编译器-> 您可以在这里更改项目字节码版本

enter image description here

也许上面的这些答案已经过时了,但是对于新的 Android Studios 1,您可以执行以下操作来查看要在1.7上运行的模块(或者1.6,如果您喜欢的话)。点击文件-> 项目结构。选择要运行的模块,然后在“源兼容性”和“目标兼容性”下选择1.7。点击“确定”。

Project Structure screen of Android Studios 1

右击你的专案 > 开启模组设定 > 在「专案设定」部分选取「专案」

将 ProjectSDK 更改为最新版本(可能是 API 21) ,将 ProjectLanguage 级别更改为7 +

最新 Android Studio 1.4。

点击文件-> 项目结构-> SDK 位置-> JDK 位置。

您还可以通过访问 Module (在 SDK Location 下面)来设置单个模块 JDK Version 兼容性,并相应地编辑源兼容性。(注意,这只适用于 Android 模块)。

始终使用最新的 SDK 版本来构建:

compileSdkVersion 23

它可以编写 不会影响运行时行为,但是提供了最新的编程特性。

进入你的分级,寻找 资源兼容性,并将其从 1.6改为 7。至少对我有用。

您还可以进入模块设置并将 源/目标兼容性设置为1.7。

模块设置窗口

这将在你的分级中产生以下代码:

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}