相关疑难解决方法(0)

基于Android Gradle多风味库的多风味应用

我的应用程序有几种风格适用于多个市场的应用程序计费系统.

我有一个库,它共享我所有项目的基本代码.所以我决定将这些支付系统作为产品口味添加到这个库中.

问题是android库可以有产品口味吗?

如果是这样,我如何在应用程序的各自风格中包含不同的风格?

我搜索了很多,我找不到任何关于这种情况的信息.我在http://tools.android.com/tech-docs/new-build-system/user-guide中找到的唯一近似内容是:

dependencies {
    flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
    flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}
Run Code Online (Sandbox Code Playgroud)

我将配置更改为不同的东西,但它不起作用!

我正在使用android studio 0.8.2.

android gradle android-gradle-plugin

97
推荐指数
4
解决办法
4万
查看次数

gradle 风味维度中的组合 BuildConfig 变量

在我的 Android 应用程序中,我有两个风味维度:“品牌”(品牌 1、品牌 2)和“环境”(登台、生产)。BuildConfig一段时间后,我添加了“环境”维度,并且之前为不同品牌定义了一些变量。更具体地说,我BASE_URL这样定义:

flavorDimensions 'brand'
productFlavors {

    brand1 {
        dimension 'brand'
        ...
        buildConfigField "String", "BASE_URL", "\"http://brand.one.api/\""
        ...
    }

    brand2 {
        dimension 'brand'
        ...
        buildConfigField "String", "BASE_URL", "\"http://brand.two.api/\""
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我添加了“环境”维度,我想要设置的是四个不同的端点:

  1. Brand1-staging:“ http://brand.one.staging.api/
  2. Brand1-生产:“ http://brand.one.production.api/
  3. Brand2-staging:“ http://brand.two.staging.api/
  4. Brand2-生产:“ http://brand.two.Production.api/

但我不知道如何BuildConfig为风味维度的特定组合创建变量。这甚至可以用裸 gradle 实现吗?

谢谢

gradle android-build-flavors android-flavordimension android-buildconfig

7
推荐指数
1
解决办法
1989
查看次数

在build.gradle中定义清单占位符

我在我的几个清单的占位符AndroidManifest.xml文件

build.gradle我要动态地填充这取决于我的风味和构建类型的值。

我怎样才能做到这一点 ?

我写了一个执行以下操作的函数

def getKey() {
    def KeyToReturn = ""
    android.applicationVariants.all { variant ->
        printout("getKey: ${variant.name}")
        def flavor = "default";
        if (variant.productFlavors.size() > 0)
            flavor = variant.productFlavors.get(0);


        def buildType = variant.buildType.name

        if (buildType == "debug" || buildType == "staging") {
            if (flavor.name == "one") {
                KeyToReturn = test_key_1
            }
            if (flavor.name == "two") {
                KeyToReturn = test_key_2
            }

        }
        if (buildType == "release") {
            if (flavor.name == "one") {
                KeyToReturn = live_key_1
            }
            if …
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin

3
推荐指数
1
解决办法
2919
查看次数