最近有個項目需要用到第三方的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,這個是完全可以使用的。