文档章节

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

neumeng
 neumeng
发布于 2016/10/21 11:16
字数 320
阅读 164
收藏 0

在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

© 著作权归作者所有

neumeng
粉丝 9
博文 32
码字总数 17261
作品 0
鞍山
程序员
私信 提问
Android开发中使用Lambda表达式

在Android开发中使用Lambda表达式 需求: Build-tools版本24.0.0 rc3 版本以上 JDK8以上 环境: JDK 1.8.0_144 Android API 26 一、 Project Structure Language level 至少为8 二、build.g...

开源中国首席有志青年
2017/10/29
31
0
30分钟入门Java8之lambda表达式

30分钟入门Java8之lambda表达式 前言 Google在今年发布Android N开发者预览版,一并宣布开始支持Java 8。我们终于能在Android开发中使用到Java8的一些语言特性了。目前支持: 默认方法 lamb...

spinachgit
2018/01/12
59
0
聊聊Android N开始支持的Lambda

聊聊Android N开始支持的Lambda 码农明明桑2016-09-1384 阅读 Android N 正式版已经发布了。对于开发者来说一个重大的更新是对于Java支持到了Java8,其中一点就是支持Lambda。我们就来聊聊什...

码农明明桑
2016/09/13
0
0
让Android studio支持java8

一:只需要支持Lambda表达式 在app/build.gradle下添加 然后就可以使用Lambda表达式了,比如 可以简化成 二:Java 8和Jack编译 参考Android官网 注意: 需要使用Android N 也就是API24,以下...

2tman
2017/02/06
35
0
Android Studio中如何支持使用Lambda表达式

Java8引入了lambda表达式,Lambda 表达式”(lambda expression)是一个匿名函数,本质上就是可以传递给其他函数的一小段代码。 下面来看一下如何让自己的项目支持使用lambda表达式,以达到简化...

懂音乐码虫
2018/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 脚本引擎入门

Java Script Engine Java 脚本引擎可以将脚本嵌入Java代码中,可以自定义和扩展Java应用程序,自JDK1.6被引入,基于Rhino引擎,JDK1.8后使用Nashorn引擎,支持ECMAScript 5,但后期还可能会换...

阿提说说
41分钟前
4
0
05.深入浅出索引(下)

在下面这个表T中,如果我们执行select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行? mysql> create table T ( id int primary key, k int not null default...

scgaopan
昨天
6
0
设计模式-中介者模式

设计模式-中介者模式 定义 用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互 UML 组成部分主要包含 Mediat...

木本本
昨天
5
0
Python 周刊第 418 期

新闻 PyCon US 2020 开始接受财务赞助! https://pycon.blogspot.com/2019/10/financial-aid-launches-for-pycon-us-2020.html2020年 Python 美国开发者大会,tips: 中国也有,可以赞助国内的...

iCodeBugs
昨天
5
0
ThreadLocal源码阅读

首先,从set方法入手, // ThreadLocalpublic void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t);//这里可以看出,从Threa......

小海bug
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部