欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android 匹配so文件规则

程序员文章站 2022-06-09 17:02:27
...

在对接多个有so文件的第三方sdk时碰到一个问题,在某些手机上会崩溃报错,报错Log显示:无法找到某某**.so文件。

反编译集成的apk文件,发现libs下各架构目录下的so文件并不都相同,有些架构里有的so在其他架构里就没有。

问题就出在这里了,android中,根据cpu架构分七种 "armeabi", "armeabi-v7a","arm64-v8a", "x86", "x86_64", "mips", "mips64",

(如果针对各个架构优化过代码,运行效率会优一些)如果你的手机是arm64的,就会先去找arm64,如果找到了,就读取arm64下的so。如果没有找到,就去找v7a,v7a也没有就去armeabi。因此,我们在适配某一种架构时,要嘛全部提供,要嘛全都不提供,以免报错。

可以使用如下代码控制需要提供的架构目录:

android {
    defaultConfig {
        ndk {
            abiFilters "armeabi"//, "armeabi-v7a","arm64-v8a", "x86", "x86_64", "mips", "mips64"
        }
    }
}


相关标签: .so android .so