Android Gradle - 在特定的 productFlavor 上添加 packageNameSuffix

标签 android gradle android-gradle-plugin

我有一个具有此产品组和风格配置的 Gradle Android 项目:

/*
 * Define different flavor groups
 */
flavorGroups 'market', 'version'

/*
 * Defile product flavors
 */
productFlavors {

    amazon {
        flavorGroup 'market'
    }

    google {
        flavorGroup 'market'
    }

    flav1 {
        flavorGroup 'version'
        packageName 'com.company.flav1'
    }

    flav2 {
        flavorGroup 'version'
        packageName 'com.company.flav2'
    }

    flav3 {
        flavorGroup 'version'
        packageName 'com.company.flav3'
    }
}

// .. Other stuff

效果很好。所有来源和资源都正确合并。 但出于特定原因,我需要包后缀为 .amz 以用于 amazon 产品风格。我怎样才能做到这一点?

我这样试过:

amazon {
    flavorGroup 'market'
    packageNameSuffix '.amz'
}

但是 gradle 抛出异常。

最佳答案

目前这是不可能的。 packageNameSuffix 严格来说是构建类型的属性。

我想提供一种方法来为给定变体(即所有 flavor 维度和构建类型的给定组合)自定义 ProductFlavor 的值,但目前还不可能。

您可以做一个扩展现有版本构建类型并添加后缀的“amzRelease”构建类型,而不是新的 flavor 维度。

如果您当前的“amazon”风格做得更多(配置 versionCode/Name/etc...),它就不会工作。然后,您可以同时使用您的亚马逊风格和 amzRelease 构建类型。它会创建比您需要的更多的变体,但在我们有更好的变体之前它会起作用。

关于Android Gradle - 在特定的 productFlavor 上添加 packageNameSuffix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20422729/

相关文章:

android - 谷歌移动视觉库11.8.0无法识别

java - 无法解析 ArrayAdapter 的方法 super 参数

android - 为 OCR 校正和过滤图像

scala - 在 Intellij 上运行测试 : Class not found

Gradle 多项目不下载依赖项

android - Gradle 属性的 "USER_HOME"文件夹在哪里?

android - .so 模块中定义的文件不会成为最终 APK 的一部分

java - OverridePendingTransition 工作异常

android - textwatcher 上的 IndexOutOfBoundsException

android - packageDebug 和 assembleDebug 之间的 gradle 区别