如何在Android Studio中启用Java 8语言特性

9

现在发布的Android Studio 2.4预览版4已经支持Java 8语言特性。不再需要使用Jack,并且需要禁用Jack才能使用默认工具链中内置的改进Java 8支持。

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

如何启用Android Studio项目中的Java 8功能?

5个回答

26

启用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语言特性


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
       }
  }

4

简单的流程 -

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

选择 -

Source Compatibility - 1.8
Target Compatibility - 1.8

1

简洁回答-

只需将以下内容添加到应用程序级别的build.gradle中,并进行同步

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

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
    }
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接