我有一个Cordova项目,并且正在为其构建一个android插件。然后,我的插件使用了使用菱形运算(<>)的库。我尝试运行它,但收到此错误:
diamond operator is not supported in -source 1.6
ArrayList<Node> selectedProviders = new ArrayList<>();
^
(use -source 7 or higher to enable diamond operator)
当我跑步时:
$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
$ javac -version
javac 1.7.0_67
我在发布之前先进行研究,有些人通过将ant更改config.xml
为
<property name="java.target" value="1.7" />
<property name="java.source" value="1.7" />
但这对我没有用。
我还尝试制作一个build-extra-gradle
文件来设置sourceCompatibility
and targetCompatibility
,但是它似乎只是在解析主项目,而不是我在插件上使用的子项目。
好的,对我有用的是添加插件使用的所有子项目(库)作为yout cordova项目的主库。
这是我所做的:将所有库复制到lib,转到eclipse>构建路径> order and export>标记所有内容。之后,您必须在root / platforms / android文件夹中创建一个build-extras.gradle文件。将此代码放在文件中:
ext.postBuildExtras = {
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
allprojects {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
}
}
}
不过,仍在子项目中进行引用。您必须从项目和子项目中进行引用(不确定为什么,但是可以。)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句