Gradle打包不同平台的module引用问题

在开发过程中,随着项目的逐渐完善,把项目分成不同的module更便于维护。因而就产生了主项目引用module,module引用module的问题。有的module是某个平台专用的,其他平台不需要的。还有的是根据cpu平台需要引入不同module的。我的项目就出现了这样的问题,我相信对gradle非常了解的人应该都可以解决这个问题,然而像我这种就需要各种查资料才能解决。最近有朋友也问我关于项目module引用问题,我觉得有必要写一篇文章分享一下我的方案。

借用一下极客学院wiki:http://wiki.jikexueyuan.com/project/android-gradle-guide/libraries-and-multi-project-setup.html

我也是看了这篇文章才摸索出解决问题的方法。建议先看我的这篇文章,再去看上边的这篇。(另外推荐一下极客学院wiki,相当不错)

项目结构(部分):

主项目的gradle配置

android {
    ....
    productFlavors {
        armv7 {
            ndk {
                abiFilters "armeabi-v7a"
            }
        }
        x86 {
            ndk {
                abiFilters "x86"
            }
        }
    }
}
....
dependencies {
    ....
    armv7Compile project(path: ':moduleA', configuration: 'armv7Release')
    x86Compile project(path: ':moduleA', configuration: 'x86Release')
}

moduleA的gradle配置

android {
    ....
    productFlavors {
        armv7 {}
        x86 {}
    }
}
.....
dependencies {
    ....
    armv7Compile project(':moduleB1-arm')
    x86Compile project(':moduleB2-x86')
}

仔细看这上边的两个gradle,最重要的就是:
1,首先要配置productFlavors,如上文中的armv7 和x86(其他的flavor根据自己需要配置)
2,然后在dependencies里边添加:
使用Flavors的名称做前缀加上Compile,上文中的是armv7Compile 和x86Compile (其他的flavor根据自己需要配置,比如xiaomiCompile等)
project单个flavor传一个参数(’:项目名称’)
project有多个flavor的需要传两个参数(path: ‘:项目名称’, configuration: ‘flavor名称+Release’)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值