android Studio Lambda插件(gradle-retrolambda)安装

来源:互联网 发布:清除数据恢复出厂英文 编辑:程序博客网 时间:2024/06/06 02:31

0、前言

           其实呢开始的是很不想安装的因为网上那些文章写得不明不白,还有这个插件github上面的软件仓库是mavenCentral(),而我默认的是jcenter()啊,这就坑了,全部改为mavenCentral(),我的v7包还报错,总之坑啊,不过无聊还是给安装上了。


1、环境简介


Android studio:2.1.3

gradle版本:2.14.1

Java:jdk1.8 配置JAVA_HOME 和CLASSPATH环境变量

(后面两个大概是这样就行了,不用一模一样,这里举例而已,而且我这里没试验过,看其他文章看到的,有问题就注意一下这里就好了)


gradle-retrolambda  github地址:https://github.com/evant/gradle-retrolambda

github描述:这是一个支持java1.6,java1.7和安卓的Lamdba表达式的gradle插件


在android视图下,我们看看整个project的build.gradle


project-初始配置:

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
  1. // Top-level build file where you can add configuration options common to all sub-projects/modules.  
  2.   
  3. buildscript {  
  4.     repositories {  
  5.         jcenter()  
  6.   
  7.     }  
  8.   
  9.     dependencies {  
  10.         classpath 'com.android.tools.build:gradle:2.1.3'  
  11.   
  12.         // NOTE: Do not place your application dependencies here; they belong  
  13.         // in the individual module build.gradle files  
  14.     }  
  15. }  
  16.   
  17. allprojects {  
  18.     repositories {  
  19.         jcenter()  
  20.   
  21.     }  
  22. }  
  23.   
  24.   
  25. task clean(type: Delete) {  
  26.     delete rootProject.buildDir  
  27. }  


2、添加插件

虽然retrolambda上的文档说需要mavenCentral(),经测试,jcenter()也是可以的,可能新版本上传到jcenter了。其他版本自己试验把。

project-修改后配置

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
  1. // Top-level build file where you can add configuration options common to all sub-projects/modules.  
  2.   
  3. buildscript {  
  4.     repositories {  
  5.         jcenter()  
  6.         //mavenCentral()  
  7.     }  
  8.   
  9.     dependencies {  
  10.         classpath 'com.android.tools.build:gradle:2.1.3'  
  11.         classpath 'me.tatarka:gradle-retrolambda:3.2.5'//我是添加的  
  12.         // NOTE: Do not place your application dependencies here; they belong  
  13.         // in the individual module build.gradle files  
  14.     }  
  15. }  
  16.   
  17. allprojects {  
  18.     repositories {  
  19.         jcenter()  
  20.         apply plugin: 'me.tatarka.retrolambda'//我是添加的  
  21.     }  
  22. }  
  23.   
  24.   
  25. task clean(type: Delete) {  
  26.     delete rootProject.buildDir  
  27. }  

其实在project里面只加了两条语句

(1)、classpath 'me.tatarka:gradle-retrolambda:3.2.5'(这语句是gradle-retrolambda的导入吧,不知道怎么形容)

(2)、apply plugin: 'me.tatarka.retrolambda'(这句是应用插件的意思,留意一下他在allprojects节点下,看意思就知道这是该项目的全局设置


接下来还需要在每个modules下的build.gradle下配置一下就可以使用了

module-初始配置

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
  1. apply plugin: 'com.android.application'  
  2.   
  3.   
  4. android {  
  5.     compileSdkVersion 23  
  6.     buildToolsVersion "23.0.3"  
  7.   
  8.   
  9.     defaultConfig {  
  10.         applicationId "xxhui.com.demospace"  
  11.         minSdkVersion 15  
  12.         targetSdkVersion 23  
  13.         versionCode 1  
  14.         versionName "1.0"  
  15.     }  
  16.     buildTypes {  
  17.         release {  
  18.             minifyEnabled false  
  19.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  20.         }  
  21.     }  
  22. }  
  23.   
  24. dependencies {  
  25.     compile fileTree(dir: 'libs', include: ['*.jar'])  
  26.     testCompile 'junit:junit:4.12'  
  27.     compile 'com.android.support:appcompat-v7:23.3.0'  
  28. }  

module-修改后配置

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
  1. apply plugin: 'com.android.application'//<span style="font-family: Arial, Helvetica, sans-serif;">这里注意一下,没有在project的build.gradle的</span><span style="font-family: Arial, Helvetica, sans-serif;">allprojects节点添加</span><span style="font-family: Arial, Helvetica, sans-serif;">apply plugin: 'me.tatarka.retrolambda'</span><span style="font-family: Arial, Helvetica, sans-serif;">的话,就要在这里的下一行添加</span><span style="font-family: Arial, Helvetica, sans-serif;">apply plugin: 'me.tatarka.retrolambda',因为没有全局设置嘛</span>  
  2.   
  3.   
  4. android {  
  5.     compileSdkVersion 23  
  6.     buildToolsVersion "23.0.3"  
  7. //----------------changex↓---------------------  
  8.     compileOptions {  
  9.         sourceCompatibility JavaVersion.VERSION_1_8  
  10.         targetCompatibility JavaVersion.VERSION_1_8  
  11.     }  
  12. //-----------------change↑--------------------  
  13.     defaultConfig {  
  14.         applicationId "xxhui.com.demospace"  
  15.         minSdkVersion 15  
  16.         targetSdkVersion 23  
  17.         versionCode 1  
  18.         versionName "1.0"  
  19.     }  
  20.     buildTypes {  
  21.         release {  
  22.             minifyEnabled false  
  23.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  24.         }  
  25.     }  
  26. }  
  27.   
  28. dependencies {  
  29.     compile fileTree(dir: 'libs', include: ['*.jar'])  
  30.     testCompile 'junit:junit:4.12'  
  31.     compile 'com.android.support:appcompat-v7:23.3.0'  
  32. }  

可以看到这里只是添加一个compileOptions节点,用来指定项目的编译java版本为1.8,好就这样就配置完成啦


3、验证lambda表达式



出现上面的提示说明成功,而且下面哪句的v->{}语句没有报错

额,好了不知道会不会讲复杂了,很少的内容,篇幅很大。。


----------------------------------------华丽的分割线--------------------------------------------------------------

不小心看到最新的版本的android stuio的Build-tools可以支持lambda表达式了,这里只简单链接到那博客:

在Android上使用官方Lambda支持 - Android N & Jack工具(兼容旧平台)

0 0