【问题标题】:Is there a way to combine data from flavours of different dimensions?有没有办法组合来自不同维度的数据?
【发布时间】:2020-05-02 21:15:38
【问题描述】:

我为同一个应用制作了 4 种不同风格的应用,并将它们全部作为免费应用发布到 Play 商店。

现在我正在为每个应用制作付费版本,为了实现这一目标,我创建了 2 种新风格:免费和付费,这些风格与 4 种应用中的一种具有不同的维度。 4 个应用程序具有“版本”维度,免费/付费版本具有“模式”维度。

我想弄清楚如何为每个版本/模式对设置不同的版本代码和名称,例如:flavourAFree -> versionCode 1 / flavorAPaid -> versionCode 2

这是我的代码:

flavorDimensions "version", "mode"

productFlavors {
    flavourA {
        dimension "version"
        ...
    }

    flavourB {
        dimension "version"
        ...
    }

    flavourC {
        dimension "version"
        ...
    }

    flavourD {
        dimension "version"
        ...
    }

    free {
        dimension "mode"
    }

    paid {
        dimension "mode"
    }
}

我正在努力实现的一个示例(不完全是这些值):

flavourAFree {
    versionCode 1
    versionName "1.0"
}

flavourAPaid {
    versionCode 4
    versionName "2020.2.0"
}

当我尝试同步我的 Gradle 脚本时,我收到以下错误:

配置项目“:app”时出现问题。 风味“flavourA”没有风味维度。

有没有办法做我想做的事?

【问题讨论】:

    标签: android android-gradle-plugin android-flavors android-flavordimension


    【解决方案1】:

    android article 中描述了您需要做的事情

    android {
        defaultConfig {
            versionCode 13
            versionName "2020.2"
    
        }
    
    flavorDimensions "version", "mode"
    
    productFlavors {
        flavourA {
            dimension "version"
            ...
        }
    
        flavourB {
            dimension "version"
            ...
        }
    
        flavourC {
            dimension "version"
            ...
        }
    
        flavourD {
            dimension "version"
            ...
        }
    
        free {
            dimension "mode"
            versionCode android.defaultConfig.versionCode
            versionName android.defaultConfig.versionName + ".3"
        }
    
        paid {
            dimension "mode"
            versionCode android.defaultConfig.versionCode - 12
            versionName android.defaultConfig.versionName + ".0"
        }
    }
    

    我不知道它是否是您正在寻找的东西,但它会创建:

    • flavourAFree 与 versionCode = 13versionName = "2020.2.3"
    • flavourBFree with versionCode = 13versionName = "2020.2.3"
    • flavourA用versionCode = 1versionName = "2020.2.0" 付款
    • flavourB用versionCode = 1versionName = "2020.2.0" 付款

    更多信息我推荐this article

    【讨论】:

    • 实际上我正在寻找的是每个付费版本/模式的特定版本。为了更清楚,我更新了我的问题示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2021-07-28
    • 2021-01-17
    相关资源
    最近更新 更多