Gradle 通过ABIs定义本机代码的继承权

Gradle 通过ABIs定义本机代码的继承权,gradle,android-ndk,Gradle,Android Ndk,请原谅我拙劣的术语,我对NDK不是很熟悉 我使用两个库。其中一个为armeabi生成本机*.so库,另一个为armeabi-v7a生成库。我想定义一个层次结构,首先使用ARMV7A库,然后是基本arm库。目前,我正在使用: ndk { abiFilters "armeabi-v7a", "x86", "armeabi" } 定义我有库的芯片组,但这只会引入特定的芯片组。也就是说,如果设备是armeabi-v7a,则“armeabi-v7a”*。因此库将被拉入,而

请原谅我拙劣的术语,我对NDK不是很熟悉

我使用两个库。其中一个为armeabi生成本机*.so库,另一个为armeabi-v7a生成库。我想定义一个层次结构,首先使用ARMV7A库,然后是基本arm库。目前,我正在使用:

    ndk {
        abiFilters "armeabi-v7a", "x86", "armeabi"
    }
定义我有库的芯片组,但这只会引入特定的芯片组。也就是说,如果设备是armeabi-v7a,则“armeabi-v7a”*。因此库将被拉入,而不是“armeabi”。如果我从配置中删除“armeabi-v7a”,则会拉入“armeabi”

是否有一种方法可以使用Flavors或其他机制在应用程序的build.gradle中定义层次结构,但这似乎更适合于我自己生成这些*.so文件,而我不是。我只是想使用*.so文件,这些文件包含在我的项目中的.jar或.aar中。

对于fat APK(在一个APK中有多个ABI值的库),Android的软件包管理器将为正在运行的设备选择正确的库

对于拆分APK(每个ABI有一个APK),play store负责安装正确的APK: