Android apk-如何使用gradle从第三方依赖项中排除.so文件

Android apk-如何使用gradle从第三方依赖项中排除.so文件,android,gradle,Android,Gradle,我有一个android项目,有几个依赖项。 其中两个(我们称之为依赖项A和B)具有本机库(.so文件) 依赖项A具有以下体系结构:arm64-v8a、armeabi、armeabi-v7a、x86和x86_64。 依赖项B具有以下体系结构:armeabi、x86 因此,当我的应用程序在armeabi-v7a设备上运行时(例如),依赖项B调用本机方法,它无法找到要从中获取它的相关库(因为它不在armeabi-v7a文件夹中,并且不会自动返回到库所在的armeabi) 有办法解决这个问题吗? 例如,

我有一个android项目,有几个依赖项。 其中两个(我们称之为依赖项A和B)具有本机库(.so文件)

依赖项A具有以下体系结构:arm64-v8a、armeabi、armeabi-v7a、x86和x86_64。 依赖项B具有以下体系结构:armeabi、x86

因此,当我的应用程序在armeabi-v7a设备上运行时(例如),依赖项B调用本机方法,它无法找到要从中获取它的相关库(因为它不在armeabi-v7a文件夹中,并且不会自动返回到库所在的armeabi)

有办法解决这个问题吗? 例如,我是否可以向build.gradle文件添加一些配置,以使arm64-v8a、armeabi-v7a和x86_64文件夹不集成到最终apk中


我尝试过打包选项/排除,但没有结果:有问题的文件夹仍然存在。

尝试一个干净的构建,我没有,它仍然从以前的构建中提取文件。最后我删除了我的app/build/folder只是为了确认一下

android { 
    packagingOptions {
        exclude 'lib/armeabi-v7a/libSomeLibYouDontWant.so'
    }
}
为我工作的一个应用程序以前崩溃了

另一种选择是使用

android{
    defaultConfig{
        ndk{
            abiFilters "armeabi", "x86"
        }
    }
}
有一些类似的问题可能会有所帮助


此外,您可以使用以下语法忽略整个ABI文件夹,例如,对于
armeabi-v7a
文件夹:
exclude“lib/armeabi-v7a/**”
(请参阅)这将完全从项目中排除“lib/armeabi-v7a/libSomeLibYouDontWant.so”,如果我们需要排除特定的依赖关系,该怎么办。