source 1.7 in Android Studio and Gradle

I'm getting following error when trying to compile my project in Android Studio:

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

I have 1.7 set as target in all project preferences I've found. Also the path displayed in project SDK's under 1.7 SDK is correct path to java 1.7 installation.

Even when I run java -version in terminal, it tells me I'm running on java 1.7.

I have tried to set JAVA_HOME env variable to this:

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

The error does not go away. How do I eliminate the error?


Java 7 support was added at build tools 19. You can now use features like the diamond operator, multi-catch, try-with-resources, strings in switches, etc. Add the following to your 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 plugin 0.6.+ are required.

Note, that only try with resources require minSdkVersion 19. Other features works on previous platforms.

Link to android gradle plugin user guide

Link to see how source vs target are different


Maybe these answers above are old but with the new Android Studios 1, you do the following to see the module to run on 1.7 (or 1.6 if you prefer). Click File --> Project Structure. Select the module you want to run and then under "Source Compatibility" and "Target Compatibility", select 1.7. Click "OK".

Android Studios的项目结构屏幕1


You can change it in new Android studio version(0.8.X)

FIle-> Other Settings -> Default Settings -> Compiler (Expand it by clicking left arrow) -> Java Compiler -> You can change the Project bytecode version here

在这里输入图像描述

链接地址: http://www.djcxy.com/p/17972.html

上一篇: Android计划支持Java7吗?

下一篇: Android Studio和Gradle中的源代码1.7