AndroidStudio中Java8 Lambda表达式不能用

 转载出处:

一、问题提出

有些同学在使用AndroidStudio开发的过程中可能会遇到不能使用Java 8Lambda表达式的情况,具体如下

[图片上传失败...(image-16b34a-1510989909212)]
OK,接下来我将为大家讲解为什么会出现这种情况以及如何处理

二、出现问题的原因

在了解问题出现的原因之前我们需要了解一下什么是Lambda表达式

 Lambda表达式是Java 8语言的一个新特性,可以简化匿名内部类的非关键代码,从而突出功能代码

talk is cheap,show me the code

通常写法


使用Lambda表达式

使用Lambda后

以上只是Lambda表达式的一个简单的使用,深入学习大家可以参考一下文章:

OK ,既然了解了什么是 Lambda表达式,那么解决问题就容易了。出现不能使用有一下情况:

  • AndroidStudio相关配置没有配好,因此不能支持Lambda表达式(Android7.0(API24)以后才开始支持Java 8)
  • 电脑Java version没有达到1.8

三、问题解决

3.1 AndroidStudio相关配置没有配好

此处假设你的AndroidStudioAPI24以上
你需要在你的appbuild.gradle配置红色区域内容,再Sync project即可:
[图片上传失败...(image-85ea15-1510989909213)]

//开启Jack编译器
    jackOptions {
        enabled true
    }

 //将Java的版本改成1.8
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

参考文章:Error:Jack is required to support java 8 language features. 及Jack的介绍

3.2 java version没有1.8

使用cmd命令查看Java version

image.png


如果你的java版本确实没有1.8,在oracle官网下载,然后配置Java环境即可

PS:我在修改java 版本,即想把自己java 1.7改成1.8或者1.8改成1.7的时候,碰到了即使成功地修改了路径但是版本并没有修改的坑,后来查阅资料了解到,Java查询版本的时候并不是直接从路径里查的,而是有有一个快捷方式,记录上次查的Java版本是多少。此时我们除了需要修改path,还需要把path往上移让它生效,大概就是这样:

示意图



 

猜你喜欢

转载自blog.csdn.net/qq_39792615/article/details/81629520