添加 java8 支持时出现安卓工作室错误

我的 Android Studio 或我的配置出了什么问题?

Error:(22, 0) Could not find method jackOptions() for arguments [build_1b0umrzpkhcolzr325bxbizec$_run_closure1$_closure5@41c39fc1] on project ':app' of type org.gradle.api.Project.

这是我的构建.gradle

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
    applicationId "com.twtstudio.wepeiyanglite"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
jackOptions {
    enabled true
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}


// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0-beta1'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我猜杰克在我的开发环境中没有启用,如何找出错误并修复它?我已经安装了jdk1.8


答案 1

jackOptions 应该在 defaultConfig{} 里面,如下所示:

defaultConfig {
    ...

    jackOptions {
        enabled true
    }
}

答案 2

根据文档

Jack 工具链已弃用,根据此公告。如果您的项目依赖于 Jack,则应迁移到使用 Android Studio 的默认工具链中内置的 Java 8 支持。使用缺省工具链还包括对使用 Java 8 语言功能的第三方库、即时运行以及依赖于中间.class文件的工具的支持。

要禁用 Jack 并切换到默认工具链,只需从模块的 build.gradle 文件中删除 jackOptions 块:

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

    // Keep the following configuration in order to target Java 8.
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

推荐