【发布时间】: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 文件来设置sourceCompatibility 和targetCompatibility,但它似乎只是解决了主项目,而不是我在插件上使用的子项目。
【问题讨论】:
-
那么您使用的外部库使用菱形运算符?以及您在其中使用它的项目,您究竟是如何构建它的?蚂蚁还是 gradle?
-
是的,外部库使用菱形运算符。我在 plugin.xml 文件中使用
<framework src="src/android/filepicker-android/filepicker-library" custom="true" type="projectReference"/>导入我的库。我不确定如何用 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 的输出