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

2022-09-01 23:49:56

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

但它对我不起作用。

我还尝试制作一个文件来设置 and ,但它似乎只是解析主项目,而不是我在插件上使用的子项目。build-extra-gradlesourceCompatibilitytargetCompatibility


答案 1

好吧,对我有用的是添加所有子项目(库),你插件用作你科尔多瓦项目的主库。

我所做的是:将所有库复制到库,转到 eclipse>构建路径>排序和导出>标记所有内容。之后,您必须在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
        }
    }
}
}

但是,在子项目中保持引用。您必须从项目和子项目中进行引用(不确定为什么,但有效)。


答案 2

推荐