如何在Android studio中启用Java 8语言功能

pRa*_*NaY 5 android android-studio build.gradle jack-toolchain android-studio-2.4

现在发布Android Studio 2.4 Preview 4,它现在支持Java 8语言功能.不再需要Jack,需要禁用Jack以使用默认工具链中内置的改进Java 8支持.

现在我们需要禁用Jack并切换到默认工具链.如何在android studio项目中启用Java 8功能?

pRa*_*NaY 20

启用Java 8支持:

要开始使用受支持的Java 8语言功能,请将Android插件更新为2.4.0-alpha4(或更高版本),并将以下内容添加到模块的 build.gradle文件中:

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}
Run Code Online (Sandbox Code Playgroud)

禁用jackOptions:

我们可以通过从模块的build.gradle文件中删除jackOptions块来禁用Jack并切换到默认工具链:

android {
    ...
    defaultConfig {
        ...
        // Remove this block.
        jackOptions {
            enabled true
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

注意:如果您的项目使用的是Jack,Retrolambda或DexGuard,那么Android studio默认使用这些工具提供的Java 8支持.

禁用Java 8支持:

我们还可以禁用项目中的Java 8功能,以防您遇到任何与Java 8相关的问题.我们可以gradle.properties通过添加以下行来更新文件以禁用Java 8功能:

android.enableDesugar=false
Run Code Online (Sandbox Code Playgroud)

有关Java 8功能的更多详细信息,请查看使用Java 8语言功能.


Bis*_*Abd 5

我知道这已经得到了回答,但是在新的 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
       }
  }
Run Code Online (Sandbox Code Playgroud)