方法一(项目无apt插件)

在需要支持的module内添加

    //支持Java8    defaultConfig.jackOptions.enabled = true    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }

例如

android {    compileSdkVersion 26    buildToolsVersion "25.0.3"    defaultConfig {        applicationId "com.liompei.retrofitdemo"        minSdkVersion 19        targetSdkVersion 26        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    //支持Java8    defaultConfig.jackOptions.enabled = true    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }    }

然后就可以使用Lambda表达式了

但是但是,开启jack编译后,不能使用apt插件了,就是这句话
defaultConfig.jackOptions.enabled = true
如果你的项目需要使用apt插件,同时又想使用Lambda表达式,可以使用下面一种方法(推荐)

方法二(项目有apt插件)

gradle-retrolambda
(最新版本可查看gradle-retrolambda的github链接)

打开Project的build.gradle,添加
classpath 'me.tatarka:gradle-retrolambda:3.6.1'

例如

// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {    repositories {        jcenter()//        mavenCentral()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.3.3'        classpath 'me.tatarka:gradle-retrolambda:3.6.1'        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}allprojects {    repositories {        jcenter()//        mavenCentral()    }}task clean(type: Delete) {    delete rootProject.buildDir}
下一步,打开要使用Lambda表达式Module的build.gradle

添加

apply plugin: 'me.tatarka.retrolambda'

    //支持Java8    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }

例如

apply plugin: 'com.android.application'apply plugin: 'me.tatarka.retrolambda'android {    compileSdkVersion 26    buildToolsVersion "25.0.3"    defaultConfig {        applicationId "com.liompei.retrofitdemo"        minSdkVersion 19        targetSdkVersion 26        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    //支持Java8    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }}

这样就可以使用Lambda表达式了,同时可以使用apt插件

测试

        //点击事件        findViewById(R.id.btn).setOnClickListener(view -> mTextView.setText("Hello"));        //RxJava2        Flowable.just("Hello world").subscribe(System.out::println);

关于Java8,建议看看这篇文章
在Android项目中使用Java8

更多相关文章

  1. android 邮件地址正则表达式
  2. Android(安卓)ApiDemos示例解析(83):Graphics->Typefaces
  3. Android非Kotlin支持项目添加Kotlin代码时的注意点
  4. 推送sdk (类似百度 推送 ) android mina (待优化... )
  5. Eclipse 环境下安装PhoneGap开发插件
  6. Android(安卓)studio配置Opencv开发环境
  7. Android支持的媒体格式
  8. android XUtils框架
  9. 推荐一款视频转换软件免费无插件ipad/iphone/Android/YouTube适

随机推荐

  1. 你真的懂网络分层模型吗?
  2. 【工具】历史文章分类汇总-V5 | Python数
  3. 学Python听什么课,看什么书
  4. 理解缓存系统的三个问题
  5. mysql group_concat 获取一对多的数据
  6. 手把手教你白嫖一个服务器并搭建自己的远
  7. Matplotlib 中等高线图(contour)的绘制
  8. 努力不一定能成,不努力一定不成
  9. 【Android】实现登录、注册、数据库操作(
  10. 万字长文详解Python正则表达式及re模块