lambda expressions are not supported at this language level解决方法

lambda问题.png

最近在自己写的项目里面添加lambda表达式,一直以为只用在Android Studio里面下一个Lambda Plugin就可以了,但是,万万没想到写出来之后居然爆出来“lambda expressions are not supported at this language level”

查了一下是说Android Studio里面的Java语言不支持(因为JAVA8已经支持Lambda表达式了)在google.com搜了一下,国外的大牛们解决方法却让你傻眼了:

lambda expressions are not supported at this language level解决方法_第1张图片
网友回复.png
lambda expressions are not supported at this language level解决方法_第2张图片
2.png
lambda expressions are not supported at this language level解决方法_第3张图片
3.png

而我的Android Studio是这样的:

lambda expressions are not supported at this language level解决方法_第4张图片
6.png

这里只能选1.6或者1.7,而java8是1.8,我的内心是崩溃的,感觉我下了一个假的IDE,赶紧找了身边的大神过来帮忙,大神出马直接撸代码,在当前项目的gradle文件里面添加三段代码:

lambda expressions are not supported at this language level解决方法_第5张图片
5.png
lambda expressions are not supported at this language level解决方法_第6张图片
Paste_Image.png

这是让你的IDE强制使用JAVA8 ,你现在可以去刚刚的Project structure里面,java的语言已经强制支持了1.8:

lambda expressions are not supported at this language level解决方法_第7张图片
7.png

但是光写这个是没用的,他依然会报错,而且冒出一个jack?

lambda expressions are not supported at this language level解决方法_第8张图片
8.png

大致的意思就是,你的项目没有需要用java8呀?你要么找到一个东西(jack)让它需要用到java8,要么把java8给关了省事!
可是明明是你说了Lambda表达式需要用的……
对的!
所以我们就要声明,我们要用Lambda。怎么声明呢?且看大神继续撸代码:

lambda expressions are not supported at this language level解决方法_第9张图片
Paste_Image.png

然后跑到全局的gradle里面:

lambda expressions are not supported at this language level解决方法_第10张图片
Paste_Image.png

把刚刚Lambda的下载地址搞上去:

lambda expressions are not supported at this language level解决方法_第11张图片
Paste_Image.png

然后在IDE里面Sync Now一下,done!

lambda expressions are not supported at this language level解决方法_第12张图片
Paste_Image.png

你可能感兴趣的