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往上移让它生效,大概就是这样:

示意图

OK,文章基本到此为止了,希望自己的文章能给大家带来一些帮助,让大家少踩点坑~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,898评论 25 709
  • Java 8 lambda表达式示例 转自importNew 原文链接 例1、用lambda表达式实现Runnab...
    低至一折起阅读 1,383评论 0 3
  • 我是一沙柳, 经年漠上守。 看人间、 日升月落, 鹰飞兔走。 追名逐利司空见, 总鄙他、 覆雨翻云手。 更有行者朗...
    高湛明阅读 320评论 0 3
  • 这几年来很多书为游戏站台(《游戏改变世界》),说把学习变成一个游戏化的形式,即通有一个明确的目标,然后通过立即反馈...
    李祖学大虾阅读 742评论 0 0
  • 文/蓝绿小巨人 每天都是新的开始! “你妈妈的别!”只听耳旁传来一声怒喝,声源来自我的父亲,这个中等身材的中年男...
    蓝绿小巨人阅读 692评论 2 7