, 有很多问题都会导致该错误 , 如 build.gradle 中没有配置对应的 CPU 架构 , NDK 中调用的外部动态或静态依赖库的 CPU 架构不匹配 ;
这里我遇到的问题是 主应用 与 依赖库的...;
下图是主应用生成的 so 动态库 :
可以明显看到 主应用的依赖库生成了 四种 CPU 架构的动态库 , 我们使用的 libopenssl.so 动态库只有 armeabi-v7a 架构的 , 当在...架构动态库 , 因此只编译生成 armeabi-v7a 架构动态库即可 ;
在另一个主应用的 Android Library 中 , 其也使用了 NDK , 并且使用了外部依赖库 OpenSSL 静态库..., 在 Ubuntu 中只交叉编译了 armeabi-v7a 架构的静态库 , 因此不能生成 arm64-v8a 的动态库 ;
下图是依赖库生成的 so 动态库 :
目前的主流手机都是 arm64-...所有的在 NDK 中使用到的依赖库 如 OpenSSL , FFMPEG , RTMP , FAAC , OpenCV 等 , 都必须一式两份 , 一份 armeabi-v7a 架构的静态/动态 依赖库