android studio 3.0以上library使用flavor

本文介绍了在Android Studio 3.0及以上版本中,如何在Library模块中配置build文件以支持flavor。当Library模块和Application模块的flavor不一致时,通过设置matchingFallbacks属性,可以指定Application模块在找不到匹配flavor时回退到的替代选项。详细内容包括一般情况和flavor不一致情况的配置示例及注意事项。
摘要由CSDN通过智能技术生成

android stuido 3.0以上library使用flavor配置不同的包

libray中build文件配置

目前假设有文件结构如下
|-app
|-data
其中 app是application模块,data是library模块。

1、一般情况

当前工程有 “红色模式”,与“黑色模式” ,对应flavor为 red 与 black。并且配置flavor必须在data模块下时,配置data模块的build文件如下:

android {
   //...
    flavorDimensions "version"
    productFlavors {
        red{
            dimension "version"
            buildConfigField("String", "HOST_NAME", '"http://www.red.com/"')
        }
        black{
            dimension "version"
            buildConfigField("String", "HOST_NAME", '"http://www.black.com/"')
        }
    }
}

app模块下build文件如下:

android {
   //...
    flavorDimensions "version"
    productFlavors {
        red{
            dimension "version"
        }
        black{
            dimension "version"
        }
    }
}
dependencies {
	//...
    implementation project(':data')
}

注意点:
1、工程中data模块与app模块的flavorDimensions必须相同,不相同将会报错。
2、data模块flavor比app模块flavor多不会报错,多的flavor也不会被app模块依赖

2、flavor不一致情况

data模块build文件如下:

android {
   //...
    flavorDimensions "version"
    productFlavors {
        red{
            dimension "version"
            buildConfigField("String", "HOST_NAME", '"http://www.red.com/"')
        }
        black{
            dimension "version"
            buildConfigField("String", "HOST_NAME", '"http://www.black.com/"')
        }
        white{
            dimension "version"
            buildConfigField("String", "HOST_NAME", '"http://www.white.com/"')
        }
    }
}

data模块下flavor有 red,black,white。但是app由于不可知原因flavor需要设置为red,black,gray。build文件需要如下配置:

android {
   //...
    flavorDimensions "version"
    productFlavors {
        red{
            dimension "version"
        }
        black{
            dimension "version"
        }
        gray{
            dimension "version"
            matchingFallbacks = ['white']
        }
    }
}
dependencies {
	//...
    implementation project(':data')
}

注意点:
1、gray中配置 matchingFallbacks = [‘white’]表示 app将会在data模块中未命中gray时选择white。如果data模块中有gray,则会选gray。
2、matchingFallbacks = [‘white’]对应的值可以有多个用于命中library中的flavor。例如matchingFallbacks = [‘white’,‘blue’,‘orange’]。

参考

[1]添加构建依赖项: https://developer.android.com/studio/build/dependencies

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值