我正在为不同的ABI(armv7a,x86_64,x86)使用多个.so文件。我正在尝试生成一个包含这些文件的aar文件。目前,我正在为所有abi获取单个aar文件,并且大小非常大,然后它将创建大尺寸的apk。我需要在build.gradle中声明abi的基础。我在build.gradle中试过了split标签,但是它没有用。
我认为最干净的方法是只有1个aar然后通过体系结构拆分你的apks,但是你可以将你的本地库包装在不同版本的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