【问题标题】:build gradle variables to be used in code depending on flavor AND build type根据风味和构建类型构建要在代码中使用的 gradle 变量
【发布时间】:2015-06-11 21:09:27
【问题描述】:

有没有办法在我的代码中使用 build.gradle 中的变量,这取决于风味和 buildType?

在此示例中:Is it possible to declare a variable in Gradle usable in Java? 新资源值仅取决于它是调试还是发布构建类型。

我想要的是每个可能的 buildVariant 都有一个变量。

类似:

flavor1Debug   => resValue "string", "app_name", "App 1 Debug"
flavor1Release => resValue "string", "app_name", "App 1"
flavor2Debug   => resValue "string", "app_name", "App 2 Debug"
flavor2Release => resValue "string", "app_name", "App 2"

有没有一种很好的方法可以通过 build.gradle 或其他不包含开关或 if else 语句的方式来做到这一点?

【问题讨论】:

    标签: java android android-studio android-gradle-plugin


    【解决方案1】:

    在您的应用的 build.gradle 中,实现此目的的一种方法是:

    buildTypes {
        debug {
            productFlavors.flavor1.buildConfigField "String", "app_name", "\"App 1 Debug\""
            productFlavors.flavor2.buildConfigField "String", "app_name", "\"App 2 Debug\""
        }
        release {
            productFlavors.flavor1.buildConfigField "String", "app_name", "\"App 1\""
            productFlavors.flavor2.buildConfigField "String", "app_name", "\"App 2\""
        }
    }
    

    请注意,您需要在 buildTypes 之前定义 productFlavors{} 块。

    【讨论】:

    • 对不起,我认为这首先有效,但应用程序永远不会从调试中获得价值,它总是需要发布。无论我在运行应用程序时选择哪种构建变体。
    • 您能否编辑您的帖子以包含您的构建文件的更完整版本?另外,您使用的是哪个版本的 gradle 插件?我正在使用 1.1.3
    • 为什么要声明"String"
    猜你喜欢
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多