【问题标题】:lambda expression are not supported in -source 1.6-source 1.6 不支持 lambda 表达式
【发布时间】:2021-02-28 06:42:52
【问题描述】:

当我运行ionic cordova build android 时,出现以下错误:

D:\Projects\ionic-bt-device-application\platforms\android\src\com\moust\cordova\videoplayer\VideoPlayer.java:73: error: lambda expressions are not supported in -source 1.6
            cordova.getActivity().runOnUiThread(() -> openVideoDialog(path, options));
                                                   ^
  (use -source 8 or higher to enable lambda expressions)
D:\Projects\ionic-bt-device-application\platforms\android\src\de\appplant\cordova\plugin\background\BackgroundMode.java:314: error: lambda expressions are not supported in -source 1.6
        cordova.getActivity().runOnUiThread(() -> webView.loadUrl("javascript:" + js));
                                               ^
  (use -source 8 or higher to enable lambda expressions)
D:\Projects\ionic-bt-device-application\platforms\android\src\de\appplant\cordova\plugin\background\BackgroundModeExt.java:175: error: lambda expressions are not supported in -source 1.6
                    getApp().runOnUiThread(() -> {
                                              ^
  (use -source 8 or higher to enable lambda expressions)
D:\Projects\ionic-bt-device-application\platforms\android\src\de\appplant\cordova\plugin\background\BackgroundModeExt.java:297: error: method references are not supported in -source 1.6
                activity.runOnUiThread(dialog::show);
                                               ^
  (use -source 8 or higher to enable method references)
4 errors
:compileDebugJavaWithJavac FAILED

我的java版本是8,为什么还是问use -source 8?

【问题讨论】:

  • 我现在不知道 ionic 构建过程是如何工作的。但是 Java 8+ 有一个命令行参数,您可以使用它来设置编译代码和生成输出时要使用的语言版本。 ionic 使用的构建工具将其设置为 6。对我来说,看起来 ionic 在幕后使用 Maven(我之前在 Maven 构建中遇到过这样的问题)。你能确认一下吗?
  • 啊,既然是 android,那可能是 gradle 在工作,而不是 Maven。某处有 build.gradle 吗?

标签: java android ionic3


【解决方案1】:

lambda 只能从源 Java 8 获得。

即使 JDK 版本是 1.8,您也在指示编译器将源视为 1.6。由于1.6 语言规范没有 lambda,这会导致错误。

来源

- 源发布

指定接受的源代码版本。

javac

编译器可以支持的语言特性由source决定(假设编译器版本高于或等于源版本)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2017-06-08
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    相关资源
    最近更新 更多