說明:新人,對java不熟,見諒。
1. 新建工程,添加好native support,寫好對應的文件(包括cpp文件,so文件和對應的java文件,此處稱對應的java文件為SoJAR.java,)。
2. 右鍵單擊該SoJAR.java文件,選擇Export,選擇java中的JAR file。

之后設置好路徑,一路finish。便可生成對應的jar文件。

3. 將生成的SoJAR.jar文件放到新的工程的libs目錄下(老版本的可能步驟比較復雜,我用的Eclipse 23,不需要別的設置,直接放進去就行了),將libSoJAR.so文件放到libs\armeabi目錄下(或者對應的目錄下)。

4. 正常編寫代碼。
Sojar.somecode();
問題:遇到的一個問題是,如果使用原來的so的話,需要2s;使用jar包的話,需要8s。暫時不是很清楚速度為何差距這么大(里面有很多new和delete以及循環)。
1411061030更新:換了一個簡單的測試程序,就是兩個400*400的矩陣相乘。使用so用時1460ms,使用jar的包1495ms。暫時不清楚為什么這次時間差距沒有這么大。
1411061411更新:速度問題已經解決,由於so的包的問題。原來的so包使用application.mk生成了armeabi armeabi-v7a mips x86四種so的庫,新的jar包只使用了armeabi的包,因而速度變成了8s。刪除該文件夾,復制armeabi-v7a文件夾后,速度變成了2s(ps,現在的程序依舊無法使用,因為太慢了)。不過使用mips x86這兩個so的庫的話,程序直接崩潰了。所以選擇合適的so庫還是很有必要的。
主要參考:
http://stackoverflow.com/questions/24773153/the-library-javacv-android-arm-jar-contains-native-libraries-that-will-not-run
