Gradle android插件,如何根据不同的产品风格复制和加载不同的动态库?

时间:2017-08-08 03:48:34

标签: android gradle

我的android模块结构如下:

└─product module
└─src
    └─main
        ├─assets
        │  ├─flavor1
        │  └─flavor2
        ├─java
        └─jniLibs
            └─armeabi

我在模块的build.gradle文件中定义了两个名为flavor1和flavor2的产品风味,在文件夹src / main / assets / flavor1 /和src / main / asssets / flavor2下是完全不同的动态库,例如:libhelper.so。它们用于不同的产品风味。

我的目的是在gradle构建过程中根据产品风格将不同的动态库复制到jniLibs / armeabi /文件夹,这是实现这一目标的一种方法吗?

1 个答案:

答案 0 :(得分:0)

您可以为此创建一个gradle任务。

task copyNativeLibs {
    Gradle gradle = getGradle()
    Pattern pattern = Pattern.compile(":assemble(.*?)(Release|Debug)");
    Matcher matcher = pattern.matcher(gradle.getStartParameter().getTaskRequests().toString());
    def flavor = matcher.group(1)

    if(flavor == 'flavor1') {
    copy {
        from '/yourlibrarypath'
        into 'src/main/assets/flavor1/ '
        }
    } else if() {
    ....
    }
}