最近有个项目需要用到第三方的lib,而在它们的官网上面下载了linux版本的so
于是根据它们提供的文档来调用so里面的函数,用ndk将so编译到我自己的jni lib
中去。但是编译是过了,链接时出问题了:
could not read symbols: File in wrong format
collect2: ld returned 1 exit status
后来找了下原因,linux平台下的so 是在x86的CPU架构下编译出来的,但是我们NDK编译
的是用于ARM平台下使用的so(当然也可以是x86的,不过这个需要ndk5以上版本)。
所以这个的解决办法是找到对应的ARM平台下的so 。
有两个办法:
1.直接找对方要,因为你是客户,但如过是小客户,也许不会理你。
2.从它们提供的APK示例程序中解压得到你想要的lib,这个是完全可以使用的。