最近项目中需要使用阿里巴巴的阿里百川IM,在使用过程中需要导入他们的SDK,里面就有so库(有armeabi、armeabi-v7a、x86)。然后奇葩的是编译没有任何问题,在启动的时候就报错了,提示如图:
看到了吗,提示我arm64-v8a文件夹下没有对应的库,也说不需要这个删除掉,但我明明没有arm64-v8a啊!!!真的很郁闷,后来我就不信了,就把生成的apk(编译后会生成apk,在build\outputs\apk这个目录下)用压缩软件打开,在libs下果然发现了arm64-v8a,还莫名其妙的出现很多so库,也没什么用于是我就删掉了。但是问题是我根本就没有这样的,为什么会出来呢,即使我删除掉估计还会自动生成的,于是我就在项目的app.gradle下这样写即可了(是在android{}里面):
[java] view plain copy print?
- buildTypes {
- release {
- ndk {
- //增加这个主要是限制只能有这几个so库的文件夹,否则莫名其妙出现其它的文件夹导致报错
- abiFilters "armeabi", "armeabi-v7a", "x86"
- }
- }
- debug {
- ndk {
- abiFilters "armeabi", "armeabi-v7a", "x86"
- }
- }
- }
就是那个ndk那几项,应该是强制约定这几个吧。好了,重新编译运行搞定了,希望能帮助大家。