Android Studio对于Java8特性的支持

Android Studio从2.1开始官方通过Jack支持Java8,从而使用Lambda等特性。

一 Android Studio 3.0版本之前配置

android {    ...    defaultConfig {        ...        jackOptions {            enabled true        }    }    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }    ...}

如果没有打开jackOptions的配置,那么会提示如下错误:

Error:Jack is required to support java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8.

但是如果打开jackOptions,意味着ButterKnife,Dagger等基于APT的注解框架将无法使用。会提示如下错误:

Error:Could not find property 'options' on task ':app:compileDebugJavaWithJack'

解决方法

使用第三方的Java8兼容插件,retrolambda。

  1. 在project的根build.gradle里添加:

    dependencies {    classpath 'me.tatarka:gradle-retrolambda:3.2.5'}
  2. 然后在module的build.gradle里添加:

    apply plugin: 'me.tatarka.retrolambda'

当然下面compileOptions是少不了的:

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

二 Android Studio 3.0版本之后配置

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

更多相关文章

  1. android(2.0以后版本) 中读取联系人和通话记录
  2. 【收藏】Android开源项目和 框架
  3. 布局技巧:使用ViewStub
  4. Android(安卓)TextView 支持的HTML标签
  5. Android(安卓)报错加入第三方库报错
  6. android studio中support与androidx的新旧对比
  7. Android: Support Libraries for Android.
  8. 布局技巧:使用ViewStub
  9. 史上最好用的Android全量版本更新库XUpdate使用指南

随机推荐

  1. golang-cache是全局吗
  2. golang中使用rand产生随机不重复数字
  3. golang中fscanf读取文件时把回车替换成0
  4. golang 包怎么调用
  5. golang 1.9什么时候发布
  6. golang中的print与fmt的区别
  7. golang中的错误处理方法
  8. golang中的int占几个字节
  9. golang中的bee是指什么
  10. golang反射重要吗