Android项目中使用lambda表达式

app module中使用Lambda

Android项目中使用lambda表达式或Java8新特性,需要在app/build.gradle中添加如下配置

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

注:Jack特性只能在app module中引用,不能在library modlue中enable

如果将下面代码写在modlue/build.gradle中:

jackOptions {
    enabled true
}

会报如下错误:

Error:Library projects cannot enable Jack. Jack is enabled in default config.

library module中使用Lambda

参考:https://stackoverflow.com/questions/37975128/is-there-way-to-use-java-8-features-with-android-library-project

// Java8 not fully supported in library projects yet, https://code.google.com/p/android/issues/detail?id=211386
// this is a temporary workaround to get at least lambdas compiling
gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xbootclasspath/a:" + System.properties.get("java.home") + "/lib/rt.jar"
    }
}

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
上一篇 Android引用Library的若干问题
下一篇 Android TabLayout参数
目录
文章列表
1 Android全局Context无侵入式获取
Android全局Context无侵入式获取
2
MySQL之mysqld_safe启动详解
MySQL之mysqld_safe启动详解
3
Kubernetes api微服务开发之访问api server
Kubernetes api微服务开发之访问api server
4
Kubernetes 1.15安装部署EFK日志收集系统
Kubernetes 1.15安装部署EFK日志收集系统
5
Grafana插件扩展之世界地图安装
Grafana插件扩展之世界地图安装
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。