【问题标题】:Cordova android - How to replace custom build.gradle with generatedCordova android - 如何用生成的替换自定义 build.gradle
【发布时间】: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

【问题讨论】:

    标签: android cordova build.gradle cordova-plugins cordova-plugin-file


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 2020-02-02
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多