您的位置:首页 > 移动开发 > Android开发

在Android Studio中使用Lambda表达式(retrolambda)

2016-10-21 11:16 615 查看

在Android Studio中使用Lambda表达式

要在Android Studio中使用Lambda表达式,需要借助一个gradle插件来完成。

这个插件是 gradle-retrolambda,项目地址是 https://github.com/evant/gradle-retrolambda

A gradle plugin for getting java lambda support in java 6, 7 and android

按照项目中所说,使用这个插件的方式如下:

第1步:首先jdk版本是1.8 没有就下载或者升级一下

第2步:设置这个Android项目使用的是1.8版本的jdk



正常来说,以上两步默认就是,不用再配了吧--!

第3步:

修改project的build.gradle,添加
classpath 'me.tatarka:gradle-retrolambda:3.3.1'


// 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.2'
classpath 'me.tatarka:gradle-retrolambda:3.3.1'
// 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
}

第4步:

修改module的build.gradle文件,添加
apply plugin: 'me.tatarka.retrolambda'
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }


具体内容如下:

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.neumeng.lambdademo"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.0'
testCompile 'junit:junit:4.12'
}

第5步:proguard

## start retrolambda
-dontwarn java.lang.invoke.*
## end retorlambda
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息