Android 多productFlavors的lib module的配置及随app module切换build variant变化

  1. 环境:Android Studio 3.5.3
  2. 项目简介:app依赖lib1,lib1依赖lib2
  3. 效果

  4. 关键配置
    1. 工程 build.gradle
      ext.dimensions = [
              'app' : "app",
              'lib1': "lib1",
              'lib2': "lib2",
      ]
    2. lib2:
      android {
          ......
      
          defaultConfig {
              ......
              flavorDimensions dimensions.lib2
          }
          productFlavors {
              lib2_pro {
                  dimension dimensions.lib2
              }
      
              lib2_dev {
                  dimension dimensions.lib2
              }
      
              lib2_online {
                  dimension dimensions.lib2
              }
          }
      }
    3. lib1:
      android {
          ......
          defaultConfig {
              ......
              flavorDimensions dimensions.lib1
          }
          ......
          productFlavors {
              lib1_pro {
                  dimension dimensions.lib1
                  // 第一个参数为依赖库的flavorDimensions, 
                  // 第二个参数为选中这个flavor后,依赖库的默认flavor
                  // 后面的参数也需要,不要的话,修改为非默认的flavor会出现问题
                  missingDimensionStrategy dimensions.lib2, "lib2_pro", "lib2_dev", "lib2_online"
              }
              lib1_dev {
                  dimension dimensions.lib1
                  missingDimensionStrategy dimensions.lib2, "lib2_dev", "lib2_pro", "lib2_online"
              }
              lib1_online {
                  dimension dimensions.lib1
                  missingDimensionStrategy dimensions.lib2, "lib2_online", "lib2_pro", "lib2_dev"
              }
      
          }
      }
      
      dependencies {
          ......
          implementation project(path: ':lib2')
      }
    4. app :
      android {
          ......
          defaultConfig {
              ......
              flavorDimensions dimensions.app
          }
      
          productFlavors {
              pro {
                  // 第一个参数为依赖库的flavorDimensions, 
                  // 第二个参数为选中这个flavor后,依赖库的默认flavor
                  // 后面的参数也需要,不要的话,修改为非默认的flavor会出现问题
                  missingDimensionStrategy dimensions.lib1, "lib1_pro", "lib1_dev", "lib1_online"
              }
              dev {
                  missingDimensionStrategy dimensions.lib1, "lib1_dev", "lib1_pro", "lib1_online"
              }
              online {
                  missingDimensionStrategy dimensions.lib1, "lib1_online", "lib1_pro", "lib1_dev"
              }
      
          }
      }
      
      dependencies {
          ......
          implementation project(path: ':lib1')
      }

    项目地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值