现在发布的Android Studio 2.4预览版4已经支持Java 8语言特性。不再需要使用Jack,并且需要禁用Jack才能使用默认工具链中内置的改进Java 8支持。
现在我们需要禁用Jack并切换到默认工具链。
如何启用Android Studio项目中的Java 8功能?
现在发布的Android Studio 2.4预览版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:
我们可以通过从模块的build.gradle文件中移除jackOptions块来禁用Jack并切换到默认工具链:
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
中,并进行同步
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
}
}