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