Android多Module分渠道以及引用

Android多Module分渠道以及引用

做点笔记,配置的东西真的难弄,不记笔记,不要两个星期就能忘光光。项目现在渠道变多了,而且还有代码的区别,之前一直在加module的形式处理,项目列表老长了,就想合并module,以渠道形式处理,不过被上司驳回了,不过学到了点东西,记下笔记。

android {
    flavorDimensions "platform"
    productFlavors {
        publishNonDefault true
        lianyun {
            dimension 'platform'
        }
        meizu {
            dimension 'platform'
        }
    }
    sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            jniLibs.srcDirs = ['libs']
            assets.srcDirs = ['src/main/assets']
            res.srcDirs = ['../wp-base/src/main/res']
        }
        meizu {
            java.srcDirs = ['src/meizu/java']
        }
        lianyun {
            java.srcDirs = ['src/lianyun/java']
        }
    }
}
dependencies {
    meizuImplementation fileTree(dir: 'libs', include: ['*.jar'])

    lianyunImplementation fileTree(dir: 'libs', include: ['*.jar'])

    meizuImplementation project(path: ':xxxx')
    lianyunImplementation project(path: ':xxxx')
}
  • publishNonDefault true,默认情况下不能生产所有版本的 library,通过设置publishNonDefault为true,可以同时生产所有版本的 library。
  • flavorDimensions至少需要定义一个,否则肯定报错(菜得可以,这都不知道),这个是风格,不同风格可以交叉生成多风格,试了下感觉挺恶心的,一堆报错,不想研究了
  • Implementation、api等导入其它module的标签都会生成不同渠道的,需要分别添加
dependencies {
    lianyunApi project(path: ':xxxx')
}

其它module引用分渠道的module需要在gradle里面配置相应的渠道,用上面的方式引用,参考了这篇文章,这篇文章区分了release和debug,实际上没必要,直接引用就好了,关键是lianyunApi,如果是lianyunReleaseApi,也许就需要用这个大佬的方式处理,没试过。

参考原博客地址:https://blog.csdn.net/qq_34103001/article/details/105494711?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值