如何基于abi生成多个aar?

时间:2019-04-03 11:55:20

标签: android build.gradle aar

我正在将多个.so文件用于不同的ABI(armv7a,x86_64,x86)。我正在尝试生成aar文件来包装这些文件。目前,我正在为所有abi获取单个aar文件,并且aar的大小非常大,然后它将创建大型apk。我需要在build.gradle中声明abi的基础。我在build.gradle中尝试了split标签,但是它不起作用。

1 个答案:

答案 0 :(得分:0)

我认为最干净的方法是只有1个aar,然后按体系结构拆分apk,但是您可以将本机库打包到具有不同口味的aar版本中。

在您的图书馆build.gradle中:

android {
    ...

    flavorDimensions "abi"
    productFlavors {
        x86 {
            dimension "abi"
        }

        arm {
            dimension "abi"
        }
    }
}

然后在您的项目中创建flavor目录:

project/
|-- mylibrary/
    |-- src/
        |-- main/ <- all your library code here
        |-- arm/
        |   |-- jniLibs/
        |       |-- armeabi/
        |           |-- libsomething.so
        |-- x86/
            |-- jniLibs/
                |-- x86/
                    |-- libsomething.so