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
    }
}

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/11/using-lambda-expressions-in-android-projects/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Android项目中使用lambda表达式
app module中使用Lambda Android项目中使用lambda表达式或Java8新特性,需要在app/build.gradle中添加如下配置 android { ... defaultConfig { ……
<<上一篇
下一篇>>
文章目录
关闭
目 录