尝试在 Android Studio 中编译我的项目时出现以下错误:
Gradle: error: diamond operator is not supported in -source 1.6
在我找到的所有项目首选项中,我都将 1.7 设置为目标。此外,在 1.7 SDK 下的项目 SDK 中显示的路径是 java 1.7 安装的正确路径。
即使我在终端中运行 java -version ,它也会告诉我我正在运行 java 1.7。
我试图将 JAVA_HOME 环境变量设置为此:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
错误不会消失。如何消除错误?
sourceCompatibility
?
在构建工具 19 中添加了 Java 7 支持。您现在可以使用菱形运算符、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
}
}
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。单击“确定”。
https://i.stack.imgur.com/iIi7q.jpg
您可以在新的 Android Studio 版本(0.8.X)中更改它
文件-> 其他设置-> 默认设置-> 编译器(单击左箭头展开)-> Java 编译器-> 您可以在此处更改项目字节码版本
https://i.stack.imgur.com/8Td2J.png
最新的 Android Studio 1.4。
点击文件->项目结构->SDK位置->JDK位置。
您还可以通过转到模块(在 SDK 位置下方)设置单个模块的 JDK 版本兼容性,并相应地编辑源兼容性。 (注意,这仅适用于 Android 模块)。
右键单击您的项目>打开模块设置>在“项目设置”部分中选择“项目”
将项目 SDK 更改为最新(可能是 API 21),将项目语言级别更改为 7+
目前,Android 不支持 Java 7,仅支持 Java 6。因此目前不支持 Java 7 中的新功能,例如菱形语法。找到支持这一点的资源并不容易,但我发现 Dalv 引擎是基于 Apache Harmony 的一个子集构建的,它只支持 Java 到版本 6。如果您检查 system requirements 以开发 Android 应用程序,它还指出至少需要 JDK 6(尽管这当然不是真正的证据,只是一个指示)。 this 和我说的差不多。如果我发现任何更实质性的东西,我会添加它。
编辑:自从我最初写这个答案以来,似乎已经添加了 Java 7 支持;检查 Sergii Pechenizkyi 的答案。
始终使用最新的 SDK 版本来构建:
compileSdkVersion 23
它不会影响运行时行为,但会为您提供最新的编程功能。
进入 Gradle 并查找 sourceCompatibility 并将其从 1.6 更改为 7。这至少对我有用。
您还可以进入模块设置并将源/目标兼容性设置为 1.7。
这将在您的 Gradle 中生成以下代码:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
不定期副业成功案例分享