我的应用程序有几种风格适用于多个市场的应用程序计费系统.
我有一个库,它共享我所有项目的基本代码.所以我决定将这些支付系统作为产品口味添加到这个库中.
问题是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 应用程序中,我有两个风味维度:“品牌”(品牌 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)
现在,我添加了“环境”维度,我想要设置的是四个不同的端点:
但我不知道如何BuildConfig
为风味维度的特定组合创建变量。这甚至可以用裸 gradle 实现吗?
谢谢
gradle android-build-flavors android-flavordimension android-buildconfig
我在我的几个清单的占位符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)