最近一直没有写文章,断更了好久,没有养成写博客的习惯.虽然会写一些东西,但是定下的一个月一篇的文章都没有保证,自己的错,应该反思。最近把文章补上来。
一、问题提出
有些同学在使用AndroidStudio开发的过程中可能会遇到不能使用Java 8中Lambda表达式的情况,具体如下
[图片上传失败...(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相关配置没有配好
此处假设你的AndroidStudio在API24以上
你需要在你的app的build.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往上移让它生效,大概就是这样:
示意图
OK,文章基本到此为止了,希望自己的文章能给大家带来一些帮助,让大家少踩点坑~












网友评论