如何在Android Studio和Gradle中设置源1.7
在Android Studio中尝试编译我的项目时出现以下错误:
Gradle: error: diamond operator is not supported in -source 1.6
在我find的所有项目偏好中,我有1.7个目标。 此外,在项目SDK的1.7 SDK下显示的path是正确的pathJava 1.7安装。
即使我在terminal运行java -version,它告诉我我在java 1.7上运行。
我曾尝试将JAVA_HOME envvariables设置为:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
错误不会消失。 我如何消除错误?
在构build工具19中添加了Java 7支持。现在可以使用菱形运算符,多重捕获,资源尝试,交换机中的string等function。将以下内容添加到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.其他function在以前的平台上工作。
链接到Android Gradle插件用户指南
链接,看看如何来源与目标是不同的
也许这些答案以上是旧的,但新的Android Studios 1,你做了以下看到模块运行在1.7(或1.6,如果你喜欢)。 点击文件 – >项目结构。 select要运行的模块,然后在“源兼容性”和“目标兼容性”下select1.7。 点击“确定”。
你可以在新的Android Studio版本(0.8.X)
文件 – >其他设置 – >默认设置 – >编译器(通过点击左箭头展开) – > Java编译器 – >您可以在这里更改项目字节码版本
最新的Android Studio 1.4。
单击文件 – >项目结构 – > SDK位置 – > JDK位置。
您也可以通过转到模块(在SDK位置下)来设置个别模块JDK版本兼容性,并相应地编辑源代码兼容性。 (注意,这仅适用于Android模块)。
右键单击您的项目>打开模块设置>在“项目设置”部分select“项目”
将项目SDK更改为最新(可能是API 21),将项目语言级别更改为7+
目前,Android不支持Java 7,仅支持Java 6.因此,Java 7中的新function(如钻石语法)目前不受支持。 find支持这一点的源代码并不容易,但是我可以发现Dalvic引擎是build立在Apache Harmony的一个子集之上的,它只支持到版本6以前的Java。如果你检查开发Android应用程序的系统需求 ,至less需要JDK 6(虽然这当然不是真正的certificate,只是一个迹象)。 这和我说的差不多。 如果我find更多的财务,我会添加它。
编辑:看来Java 7的支持已被添加,因为我最初写这个答案; 请查看Sergii Pechenizkyi的答案。
始终使用最新的SDK版本来构build:
compileSdkVersion 23
它不影响运行时的行为 ,但给你最新的编程function。
进入您的Gradle并寻找sourceCompatibility并将其从1.6更改为7 。 这对我来说至less工作。
您也可以进入您的模块设置并将源/目标兼容性设置为1.7。
模块设置窗口
这将在您的Gradle中产生以下代码:
compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 }
- 插件太旧,请更新到更新的版本,或设置ANDROID_DAILY_OVERRIDE环境variables
- 为什么我的应用程序正在运行时,在Android Studio Logcat中看到“No Debuggable Applications”?
- android.dexOptions.incremental属性已被弃用
- Gradle – 什么是非零退出值,我该如何解决?
- 如何设置gradle和android studio来进行发布构build?
- 在Android Studio中使用assembleRelease编译apk时,proguardRelease失败
- 在Android Studio中将现有项目转换为库项目
- 如何使用Android Studio录制屏幕
- ProGuard:库类的重复定义?