如何在 Android studio 中启用 Java 8 种语言功能
How to enable Java 8 language features in Android studio
现已与 Android Studio 2.4 Preview 4 一起发布,现已支持 Java 8 language features。不再需要 Jack,并且需要禁用 Jack 才能使用内置于默认工具链中的改进的 Java 8 支持。
现在我们需要禁用 Jack 并切换到默认工具链。
如何在 android 工作室项目中启用 Java 8 个功能?
启用Java8支持:
要开始使用支持的 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 工作室默认使用这些工具提供的 Java 8 支持。
禁用Java8支持:
如果您遇到任何相关问题,我们还可以禁用项目中的 Java 8 个功能 Java8。我们可以通过添加以下行来更新 gradle.properties
文件以禁用 Java 8个特征:
android.enableDesugar=false
查看 Use Java 8 language features 了解有关 Java 8 项功能的更多详细信息。
简单的过程-
Right click on Project > Open Module Setting (F4) > Modules (app) >
Select -
Source Compatibility - 1.8
Target Compatibility - 1.8
我知道这已经得到解答,但在新的 Gradle 和 android 工作室更新后,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
}
}
干净的答案-
只需将以下内容添加到应用级别 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
}
}
并在同一模块中启用 jackOption 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
}
}
现已与 Android Studio 2.4 Preview 4 一起发布,现已支持 Java 8 language features。不再需要 Jack,并且需要禁用 Jack 才能使用内置于默认工具链中的改进的 Java 8 支持。
现在我们需要禁用 Jack 并切换到默认工具链。
如何在 android 工作室项目中启用 Java 8 个功能?
启用Java8支持:
要开始使用支持的 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 工作室默认使用这些工具提供的 Java 8 支持。
禁用Java8支持:
如果您遇到任何相关问题,我们还可以禁用项目中的 Java 8 个功能 Java8。我们可以通过添加以下行来更新 gradle.properties
文件以禁用 Java 8个特征:
android.enableDesugar=false
查看 Use Java 8 language features 了解有关 Java 8 项功能的更多详细信息。
简单的过程-
Right click on Project > Open Module Setting (F4) > Modules (app) >
Select -
Source Compatibility - 1.8
Target Compatibility - 1.8
我知道这已经得到解答,但在新的 Gradle 和 android 工作室更新后,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
}
}
干净的答案-
只需将以下内容添加到应用级别 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
}
}
并在同一模块中启用 jackOption 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
}
}