Android开发经验谈Android知识Android技术知识

AndroidStudio中Java8 Lambda表达式不能用

2017-11-18  本文已影响848人  薰衣草的国度

最近一直没有写文章,断更了好久,没有养成写博客的习惯.虽然会写一些东西,但是定下的一个月一篇的文章都没有保证,自己的错,应该反思。最近把文章补上来。

一、问题提出

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

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

二、出现问题的原因

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

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

talk is cheap,show me the code

通常写法
使用Lambda表达式
使用Lambda后

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

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

三、问题解决

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,文章基本到此为止了,希望自己的文章能给大家带来一些帮助,让大家少踩点坑~

上一篇 下一篇

猜你喜欢

热点阅读