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

Posted

技术标签:

【中文标题】如何更改cordova子项目使用的java版本【英文标题】:How to change java version used by cordova subprojects 【发布时间】:2015-09-01 16:46:50 【问题描述】:

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

【问题讨论】:

那么您使用的外部库使用菱形运算符?以及您在其中使用它的项目,您究竟是如何构建它的?蚂蚁还是 gradle? 是的,外部库使用菱形运算符。我在 plugin.xml 文件中使用&lt;framework src="src/android/filepicker-android/filepicker-library" custom="true" type="projectReference"/&gt; 导入我的库。我不确定如何用 gradle 来做,也不知道这是否是正确的方法。不过,这个库在 gradle 上。你能告诉我把 compile 'io.filepicker:filepicker-android:3.8.13’ 放在哪里,以便我可以通过 gradle 导入它吗? 您使用的是 Android Studio 吗?如果是这样,请在您的项目上打开模块设置,然后转到 SDK Location 并查看 JDK Location 下的内容。确保它指向正确的 JDK 文件夹 (jdk.1.7.XXX)。 其实我使用的是cordova的命令行界面(CLI)。 同时给出 javac -version 的输出 【参考方案1】:

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

这是我所做的: 将所有库复制到库中,转到 eclipse>build path>order and export>Mark everything。 之后,你必须在你的 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
        
    


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

【讨论】:

以上是关于如何更改cordova子项目使用的java版本的主要内容,如果未能解决你的问题,请参考以下文章

使用 gradle 构建 Cordova 项目时覆盖 Java 版本

Cordova iOS - 如何更改最低部署版本?

VS2015 - 更改 TypeScript 版本

更改 Cordova 项目 android 包名称

无法从cordova CLI 将android 平台添加到cordova 项目

如何在Cordova iOS项目中更改文本字段光标颜色