在Cordova随附的build.gradle中,java版本为1.6.
的build.gradle:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 targetCompatibility JavaVersion.VERSION_1_6 } }
build.gradle有一个很大的警告,说它是一个不应该编辑的生成文件,根据我的理解,自定义gradle构建步骤的方法是创建一个build-extras.gradle文件.
我已经创建了一个build-extras.gradle文件,并尝试了以下操作:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } }
但它似乎不起作用我建立项目时仍然收到错误.
错误:
> strings in switch are not supported in -source 1.6 > switch (action) { > ^ (use -source 7 or higher to enable strings in switch)
有人可以帮我弄清楚如何设置毕业生做这个工作?
我一直在努力解决同样的问题,来到这里希望找到答案!无论如何,虽然没有回答,你提到的build-extras.gradle让我在正确的轨道,以下现在适用于我…所以谢谢.首先我想我可以尝试使用与您相同的语法,以便尝试找出错误.只要我能告诉它失败,因为build-extras.gradle文件没有神奇地合并到build.gradle中,而是使用Gradle从方法中加载和执行.而且由于这种情况发生在Android关闭之前,这个过程太早了,而且这些android值覆盖了我们的’extra’值.
(我没有时间深入我需要进入Gradle或Groovy,所以道歉,如果我的术语不精确…)
但是,如果我使用postBuildExtras()方法,我可以让它工作.
如果您看到由Cordova生成的build.gradle文件的底部,您会看到如果ext上存在这样的方法(即postBuildExtras),那么它将被调用.由于这是配置脚本中的最后一件事,所以我猜这个方法的一点是我们可以用它来覆盖任何东西.
因此,我最终以此作为我的build-extras.gradle:
ext.postBuildExtras = { android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } }
我实际上在调查中工作得很早,但是一直在尝试其他方法,因为我怀疑当我们尝试使用多个build-extras.gradle文件时,这种技术将会失败 – 鉴于我们正在专门讨论Cordova插件,很有可能
有一种看起来很有前途的插件技术,它是使用< framework>在plugin.xml中的元素,但是使用这种方法我永远不能得到插件特定的模块加载/导入/任何.当我进入插件#2时,我会再看一下这个,但是现在上面描述的技术让我在今天早上的进一步发展了一大步,所以再次感谢build-extras.gradle线索.