问题
Now release with Android Studio 2.4 Preview 4, it is now support Java 8 language features. Jack is no longer required, and need to disable Jack to use the improved Java 8 support built into the default toolchain.
Now we need to disable Jack and switch to the default toolchain. How enable Java 8 features to use in android studio project?
回答1:
Enable Java 8 Support:
To start using supported Java 8 language features, update the Android plugin to 2.4.0-alpha4 (or higher) and add the following to your module’s build.gradle
file:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Disable jackOptions:
We can disable Jack and switch to the default toolchain, by removing the jackOptions block from module’s build.gradle file:
android {
...
defaultConfig {
...
// Remove this block.
jackOptions {
enabled true
}
}
}
Note: If your project is using Jack, Retrolambda, or DexGuard, then Android studio default uses Java 8 support provided by those tool.
Disable Java 8 Support:
We can also disable Java 8 features in your project in case you are facing any issue related Java 8. We can update gradle.properties
file by adding below line to disable Java 8 features:
android.enableDesugar=false
Check Use Java 8 language features for more details about Java 8 features.
回答2:
I know this has been already answered, but after the new Gradle and android studio update, jackOptions
is deprecated.
android {
.....
defaultConfig {
..........
//remove jackOptions and add
android.compileOptions.sourceCompatibility 1.8
android.compileOptions.targetCompatibility 1.8
}
// Keep the following configuration in order to target Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
回答3:
Simple process -
Right click on Project > Open Module Setting (F4) > Modules (app) >
Select -
Source Compatibility - 1.8
Target Compatibility - 1.8
回答4:
Clean answer-
Just add following to app level build.gradle
and Sync
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
回答5:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
And enable jackOption in your same module gradle
defaultConfig {
jackOptions {
enabled true
}
}
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "****************"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
jackOptions {
enabled true
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
}
来源:https://stackoverflow.com/questions/43423057/how-to-enable-java-8-language-features-in-android-studio