使用applicationVariants.all中的resValue

时间:2014-07-17 11:40:19

标签: android-gradle

有没有人在迭代每个变体时使用resValue来设置值? 无法得到这样的东西

applicationVariants.all { variant ->
    //none of these work
    variant.mergedFLavor.setResValue("integer","key","value")
    variant.mergedFlavor.resValue "integer", "key", "value"
}

我有以下变体结构:

buildTypes{
    debug {...}
    stage {...}
    release{...}
}
productFlavors {
    flavorDimensions "country", "store"

    uk {
        flavorDimension "country"
    }
    us {
        flavorDimension "country"
    }

    amazon {
        flavorDimension "store"
    }
    google {
        flavorDimension "store"
    }
}

我希望为发布版本类型的每个[country]设置一个tracking_id。并为每个[国家] + [商店]组合设置唯一代码。 我知道国家/商店代码可以使用以下目录中的资源文件来完成:

src/ukAmazon/res
src/ukGoogle/res
src/usAmazon/res
src/usGoogle/res

跟踪目录中的ID:

src/ukAmazonRelease/res
src/ukGoogleRelease/res
src/usAmazonRelease/res
src/usGoogleRelease/res

但是将所有内容保存在脚本中并避免重复res文件会很好。当更多国家进来时,它将开始变得更加混乱。

2 个答案:

答案 0 :(得分:0)

发现这个: https://code.google.com/p/android/issues/detail?id=67416

所以它看起来还没有。提到了一个hacky解决方法。

答案 1 :(得分:0)

对于仍然感到困惑的人,只需将脚本修改为类似下面的内容即可:

{{1}}