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 平台文件夹(在 &lt;your-project&gt;/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的主要内容,如果未能解决你的问题,请参考以下文章

android中如何用代码生成View控件

如何用Android 源码生成APK签名文件

[Rom]如何用Android源码生成签名文件

Cordova:如何为所有平台定义插件?

如何用ionicframework进行混合移动应用开发

如何用Android NDK编译FFmpeg