Cordova android - 如何用生成的替换自定义 build.gradle
Posted
技术标签:
【中文标题】Cordova android - 如何用生成的替换自定义 build.gradle【英文标题】:Cordova android - How to replace custom build.gradle with generated 【发布时间】:2016-09-01 04:24:49 【问题描述】:我有一个 cordova 项目,我在其中添加了 android 平台。现在我需要使用我的 build.gradle 文件而不是生成的文件。
在 plugins.xml 中,我有以下代码可以做到这一点。
<framework src="src/android/build.gradle" custom="true" type="gradleReference" />
但是在添加插件的时候,这个build.gradle已经被放到了package下。看起来是这样的。
// PLUGIN GRADLE EXTENSIONS START
apply from: "com.test.Name/Name-build.gradle"
// PLUGIN GRADLE EXTENSIONS END
我在生成的 build.gradle 中遇到错误。
Error:(89, 0) Cannot convert relative path libs to an absolute file.
我需要我的自定义 build.gradle 替换自动生成的。请告诉我如何在 plugin.xml 中指定它 我使用的cordova版本是6.1.1
【问题讨论】:
【参考方案1】:以下来自cordova 官方文档的摘录应该对您有所帮助,
扩展 build.gradle
如果您需要自定义 build.gradle,而不是直接编辑它,您应该创建一个名为 build-extras.gradle 的同级文件。此文件将包含在主 build.gradle 中(如果存在)。该文件必须放在android平台目录(/platforms/android/app)的
app
文件夹中,因此建议您通过附加到before_build hook的脚本将其复制过来。
这是一个例子:
// Example build-extras.gradle
// This file is included at the beginning of `build.gradle`
ext.cdvDebugSigningPropertiesFile = '../../android-debug-keys.properties'
// When set, this function allows code to run at the end of `build.gradle`
ext.postBuildExtras =
android.buildTypes.debug.applicationIdSuffix = '.debug'
请注意,插件还可以通过以下方式包含 build-extras.gradle 文件:
<framework src="some.gradle" custom="true" type="gradleReference"/>
查看offical cordova documentation 了解更多信息。希望对您有所帮助。
【讨论】:
我尝试使用 ext.cdvBuildToolsVersion 执行此操作,但它似乎不起作用。有没有办法确定它是否在回升? @darewreck 尝试将文件放在platforms/android/app
子文件夹中(请参阅my PR for cordova-docs)
我需要将 maven 存储库移到 cordova android 中所有 3 build.gradle 的首位。可以扩展build.gradle文件吗?
@JoseNobile 你能详细说明你的问题吗?无法得到你的概率。
@JoseNobile 我想从最初的外观来看应该是可能的。【参考方案2】:
通过将一个名为 gradle.properties
的文件放入您的 Android 平台文件夹(在 <your-project>/platforms/android/app/gradle.properties
下)并设置其中的属性来设置自定义 gradle 文件,如下所示:
# In <your-project>/platforms/android/app/gradle.properties
cdvMinSdkVersion=20
但是,您可以通过设置环境变量来替换单个 gradle 属性,如下所示:
$ export ORG_GRADLE_PROJECT_cdvMinSdkVersion=20
$ cordova build android
或者通过在 Cordova 构建或运行命令中使用 --gradleArg 标志,如下所示:
$ cordova run android -- --gradleArg=-PcdvMinSdkVersion=20
您还可以通过 build-extras.gradle 文件扩展 build.gradle 并像这样设置属性:
// In <your-project>/platforms/android/app/build-extras.gradle
ext.cdvMinSdkVersion = 20
【讨论】:
以上是关于Cordova android - 如何用生成的替换自定义 build.gradle的主要内容,如果未能解决你的问题,请参考以下文章