gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:32:04 28 4
gpt4 key购买 nike

我正在尝试使用 gradle 作为构建工具来构建 Cordova 项目。在 Cordova 项目中,我有自己的插件,需要 Java 1.7。

在 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)

有人可以帮我弄清楚如何设置 gradle 来完成这项工作吗?

最佳答案

我一直在尝试解决同样的问题,并来到这里希望找到答案!无论如何,虽然没有答案,但您提到build-extras.gradle让我走上正确的轨道,以下现在对我有用......所以谢谢。

首先,我想我不妨尝试使用与您相同的语法,以便尝试找出问题所在。据我所知,它失败了,因为 build-extras.gradle文件不会神奇地合并到 build.gradle ,而是使用 Gradle apply from 加载和执行方法。由于这发生在 android 之前关闭这个过程还为时过早,那些android值会覆盖我们的“额外”值。

(我没有时间深入研究 Gradle 或 Groovy,如果我的术语不准确,敬请见谅......)

但是,如果我使用 postBuildExtras(),我可以让它工作。方法。

如果您查看 build.gradle 的底部由 Cordova 生成的文件,您会看到,如果 postBuildExtras 上存在这样的方法(即 ext ) ,然后它被调用。由于这是配置脚本中的最后一件事,所以我猜这个方法的重点是我们可以用它来覆盖任何东西。

因此,我最终将其作为我的 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线索。 ;)

关于java - 使用 gradle 构建 Cordova 项目时覆盖 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29386152/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com