现在随 Android Studio 2.4 Preview 4 一起发布,现在支持Java 8 语言功能。不再需要 Jack,需要禁用 Jack 才能使用默认工具链中内置的改进的 Java 8 支持。
现在我们需要禁用 Jack 并切换到默认工具链。
如何在 android studio 项目中启用 Java 8 功能?
现在随 Android Studio 2.4 Preview 4 一起发布,现在支持Java 8 语言功能。不再需要 Jack,需要禁用 Jack 才能使用默认工具链中内置的改进的 Java 8 支持。
现在我们需要禁用 Jack 并切换到默认工具链。
如何在 android studio 项目中启用 Java 8 功能?
启用 Java 8 支持:
要开始使用受支持的 Java 8 语言功能,请将 Android 插件更新为 2.4.0-alpha4(或更高版本)并将以下内容添加到您的模块 build.gradle
文件中:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
禁用 jackOptions:
我们可以禁用 Jack 并切换到默认工具链,方法是从模块的 build.gradle 文件中删除 jackOptions 块:
android {
...
defaultConfig {
...
// Remove this block.
jackOptions {
enabled true
}
}
}
注意:如果您的项目使用 Jack、Retrolambda 或 DexGuard,则 Android Studio 默认使用这些工具提供的 Java 8 支持。
禁用 Java 8 支持:
如果您遇到任何与 Java 8 相关的问题,我们还可以在您的项目中禁用 Java 8 功能。我们可以gradle.properties
通过添加以下行来更新文件以禁用 Java 8 功能:
android.enableDesugar=false
有关 Java 8 功能的更多详细信息,请查看使用 Java 8 语言功能。
我知道这已经得到解答,但是在新的 Gradle 和 android studio 更新之后,jackOptions
已弃用。
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
}
}
简单的过程 -
Right click on Project > Open Module Setting (F4) > Modules (app) >
选择 -
Source Compatibility - 1.8
Target Compatibility - 1.8
只需将以下内容添加到应用程序级别build.gradle
和Sync
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
并在同一个模块 gradle 中启用 jackOption
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
}
}