如何更改cordova子项目使用的java版本

我有一个cordova项目,我正在构build一个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文件来设置sourceCompatibilitytargetCompatibility ,但它似乎解决了主项目,而不是我在我的插件上使用的子项目。

Solutions Collecting From Web of "如何更改cordova子项目使用的java版本"

好的,我的工作是添加你插件使用的所有子项目(库)作为你cordova项目的主库。

在这里我做了什么:将所有库复制到库,去eclipse>构buildpath>订单和出口>标记一切。 之后,你必须在root / platforms / android文件夹上创build一个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 } } } } 

尽pipe如此,仍然在子项目中引用。 你必须从项目和子项目的参考(不知道为什么,但工作。)。