8

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

现在我们需要禁用 Jack 并切换到默认工具链。

如何在 android studio 项目中启用 Java 8 功能?

4

5 回答 5

24

启用 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 语言功能。

于 2017-04-15T06:39:35.090 回答
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
       }
  }
于 2018-02-16T08:04:52.683 回答
4

简单的过程 -

Right click on Project > Open Module Setting (F4) > Modules (app) >

选择 -

Source Compatibility - 1.8
Target Compatibility - 1.8
于 2018-01-11T11:49:29.083 回答
1

干净的答案-

只需将以下内容添加到应用程序级别build.gradleSync

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}
于 2018-08-22T08:47:05.160 回答
1
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
    }
}

于 2018-12-06T07:36:54.383 回答