【问题标题】:android studio : lambda expressions are not supported in -source 1.7 (use -source 8 or higher to enable lambda expressions) [duplicate]android studio:-source 1.7不支持lambda表达式(使用-source 8或更高版本来启用lambda表达式)[重复]
【发布时间】:2015-05-18 02:39:04
【问题描述】:

很高兴知道java在java版本8中引入了Lambda expressions

我在安卓工作室工作。我注意到DialogInterface.OnClickListener() 显示下划线并变为灰色,如下所示:

所以,我在那行做了alter + enter 并找到了用 Lambda 表达式替换代码的选项,如下所示:

结果如下:

运行代码后,它向我显示了这个错误:

Error:(160, 69) 错误:-source 中不支持 lambda 表达式 1.7(使用 -source 8 或更高版本来启用 lambda 表达式)

但我已经在使用 java jdk1.8.0_31。还有什么,我需要安装吗?

谁能帮帮我..

【问题讨论】:

标签: java android lambda


【解决方案1】:

您无法为 Android 编译 Java 8 源代码,因为 Android SDK 还不支持 Java 8。

但是有一种方法可以在您的代码中使用 Lambda - RetroLambda。这是一个小技巧,可让您在项目中使用 Java 8 的一些功能。

【讨论】:

  • 你用过吗..你对这个库有什么副作用吗!
  • @Shubh 几个月前我尝试在生产中使用它,但不幸的是我遇到了很多问题。 Bamboo CI 不支持 Java 8 意味着你不能在那里编译你的项目。同样对于某些版本的 gradle 插件项目没有编译,并且 espresso 测试不适用于 retrolambdas。可能这个问题已经解决了,但我没有检查
  • 所以这个至少暂时不推荐使用吧!
【解决方案2】:

我认为Android 的开发还没有为Java 8 做好准备。 Android Studio 支持编译级别Java 7,无论您安装的是Java 7 还是Java 8。所以,如果你想使用Java 8的新功能,我认为你必须等待Android Studio支持compile level Java 8

【讨论】:

  • 是的,可能……你就在这里!
  • 不支持即时运行是主要缺点,是什么让我老实说回到 Java 7,再加上 Java 8 中所有非常酷的语言功能(例如 Streams)仅支持 API 24及以上..这太疯狂了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2015-04-29
  • 2021-10-30
  • 2019-06-24
  • 2017-06-08
  • 1970-01-01
相关资源
最近更新 更多