AndroidStudio 支持Lambda表达式

本文介绍如何在Android项目中启用Java8特性,包括Lambda表达式的使用及配置方法,并探讨了Jack编译器的使用及其限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:只需要支持Lambda表达式

在app/build.gradle下添加

android {
    //设置JDK1.8
    compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
}
buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.2.5'
    }
}

repositories {
    mavenCentral()
}

//添加插件
apply plugin: 'me.tatarka.retrolambda'

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

new Thread(new Runnable() {
    public void run() {
      System.out.println("Run!");
    }
  }).start();

可以简化成

new Thread(() ->System.out.println("Run!")).start();

二:Java 8和Jack编译

参考Android官网

android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

注意: 需要使用Android N 也就是API24,以下是官方原话:

To start using these features, you need to download and set up Android Studio 2.1 and the Android N Preview SDK, which includes the required Jack toolchain and updated Android Plugin for Gradle. If you haven’t yet installed the Android N Preview SDK, see Set Up to Develop for Android N.

开启jack编译后,不能使用apt插件,报异常:Error:Could not find property ‘options’ on task ‘:app:compileDebugJavaWithJack’.参考:google issues

补充

可以使用annotationProcessor代替apt插件,之后即可使用jack编译
官方原文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值