我有一个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
文件来设置sourceCompatibility
和targetCompatibility
,但它似乎解决了主项目,而不是我在插件上使用的子项目
答案 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
}
}
}
}
尽管在子项目中保持引用。你必须从项目和子项目中做出参考(不确定原因,但是有效。)。