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

时间:2015-06-16 17:58:31

标签: java android cordova

我有一个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

我在发布前进行了研究,有些人通过将蚂蚁config.xml更改为

来解决问题
<property name="java.target" value="1.7" />
<property name="java.source" value="1.7" />

但它对我没用。

我还尝试制作一个build-extra-gradle文件来设置sourceCompatibilitytargetCompatibility,但它似乎解决了主项目,而不是我在插件上使用的子项目

1 个答案:

答案 0 :(得分:10)

好吧,对我来说有用的是添加你插件用作yout cordova项目主库的所有子项目(库)。

我在这做了什么: 将所有库复制到库中,转到eclipse&gt;构建路径&gt;订单并导出&gt;标记所有内容。 之后,您必须在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
        }
    }
}
}

尽管在子项目中保持引用。你必须从项目和子项目中做出参考(不确定原因,但是有效。)。