Android Studio 3.0 使用Java8 必须打开Jack?

我以为在Android Studio 3.0中使用Java8,不需要打开jack或者使用 retro-lambda,只需要在android节点下配置


    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

就可以了。
但是实际却不行,会提示下面这个报错

Error:Jack is required to support java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8.

所以我必须再添加

 defaultConfig {
        //...
        jackOptions {
            enabled true
        }
    }

这样不又是打开Jack?,虽然这样可以,而且编译速度也不慢,但是为什么和官网介绍的不一样呢?官网介绍

这是我的AS版本

Android Studio 3.0
Build #AI-171.4408382, built on October 21, 2017
JRE: 1.8.0_152-release-915-b08 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6

这是我的build.gradle配置

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "com.example.a18.path"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        jackOptions {
            enabled true
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }


}

dependencies {
    compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
阅读 15.1k
1 个回答

Android Studio3.0天然直接支持java 8,但是安卓插件必须在3.0.0或者更高。看看你项目build.gradle classpath 'com.android.tools.build:gradle:version'version是不是高于3.0的。
官网链接
给你贴一下我的:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进