Android apk-如何使用gradle从第三方依赖项中排除.so文件
我有一个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中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) 有办法解决这个问题吗? 例如,
我尝试过打包选项/排除,但没有结果:有问题的文件夹仍然存在。尝试一个干净的构建,我没有,它仍然从以前的构建中提取文件。最后我删除了我的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”,如果我们需要排除特定的依赖关系,该怎么办。