如何使Android studio项目支持lambda表达式
刚开始与lambda表达式打上交道是使用toolbar的返回监听的时候,直接用->就可以设置点击后的监听事件的执行代码。后来引用一些库什么的,用的越来越多也。
当然今天要介绍的是引入lambda表达式的方法,而不是讲我和它磨合的过程,这里介绍两种方式,也会分别介绍它们的优点或者我所知道的缺点。
**方法一:(这个是最值得推荐的,因为它支持Instant Run 一起使用)**
步骤1.项目的project级别的bulde.gradle文件下面依赖retrolambda库
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'me.tatarka:gradle-retrolambda:3.4.0'//retrolambda
}
步骤2.在app级别的bulde.gradle文件下面
apply plugin: 'me.tatarka.retrolambda'
buildscript {
repositories {
mavenCentral()
maven { url "https://jitpack.io" }
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.4.0'
classpath 'io.fabric.tools:gradle:1.+'
}
}
步骤三.仍然是在app级别的bulde.gradle文件中的
android{
...
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
incremental = false
}
...
}
到这一步就可以了,点击build同步就行了。
**方法二:(这个并不推荐使用,但你要明白它的缺点)**
步骤1.在app级别的bulde.gradle文件中添加以下代码
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
缺点是 :Instant Run 目前不能用于 Jack,在编译时Instant Run会被禁用。