问题描述
当我运行 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
?
解决方法
lambda 只能从源 Java 8
获得。
即使 JDK 版本为 1.8
,您也指示编译器将源视为 1.6
。由于 1.6
语言规范没有 lambda,因此会导致错误。
来源
-源码发布指定接受的源代码版本。
编译器可以支持的语言特性由source
决定(假设编译器版本高于或等于源版本)