首页 文章

如何在Android Studio和Gradle中设置-source 1.7

提问于
浏览
171

尝试在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 回答

  • 283

    在构建工具19中添加了Java 7支持 . 您现在可以使用诸如菱形运算符,多捕获,资源尝试,交换机中的字符串等功能 . 将以下内容添加到 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

  • 4

    也许这些答案都是旧的,但是对于新的Android Studios 1,您可以执行以下操作以查看在1.7上运行的模块(如果您愿意,可以使用1.6) . 单击文件 - >项目结构 . 选择要运行的模块,然后在“源兼容性”和“目标兼容性”下,选择1.7 . 单击“确定” .

    Project Structure screen of Android Studios 1

  • 5

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

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

    enter image description here

  • 1

    最新的Android Studio 1.4 .

    单击文件 - >项目结构 - > SDK位置 - > JDK位置 .

    您还可以通过转到模块(SDK位置下方)来设置单个模块JDK版本兼容性,并相应地编辑源兼容性 . (注意,这仅适用于Android模块) .

  • 2

    右键单击项目>打开模块设置>在“项目设置”部分中选择“项目”

    将Project SDK更改为最新版(可能是API 21),将项目语言级别更改为7

  • 71

    目前,Android并不容易,但我发现Dalvic引擎是基于Apache Harmony的一个子集构建的,它只支持Java版本6.如果你检查system requirements开发Android应用程序,它还说明至少需要JDK 6(虽然这当然不是真正的证明,只是一个指示) . 和this说的几乎和我一样 . 如果我发现任何更多的资金,我会添加它 .

    Edit: 自从我最初写这个答案以来,似乎已经添加了Java 7支持;检查Sergii Pechenizkyi的答案 .

  • 8

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

    compileSdkVersion 23
    

    它确实 not affect runtime behavior ,但为您提供最新的编程功能 .

  • 14

    进入Gradle并查找 sourceCompatibility 并将其从 1.6 更改为 7 . 这至少对我有用 .

    您也可以进入模块设置并将 Source/Target Compatibility 设置为1.7 .

    Module settings window

    这将在您的Gradle中生成以下代码:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    

相关问题