具體配置過程就不冗述瞭,網上一搜一大堆。主要是:
1)下載Android NDK;
2)安裝Cygwin;
3)在Cygwin中配置Android NDK的環境變量。說白瞭,就是將windows系統下的NDK路徑映射到Cygwin環境下,以便後期編譯的時候能找到對應目錄;
4)在Eclipse中設置Android project的屬性,通過設置working環境與命令,調用Cygwin的編譯工具來生成動態連接庫。
www.aiwalls.com
安裝Cygwin是為瞭與NDK工具一起生成本地代碼的動態連接庫。具體的調用命令可以在eclipse中的project屬性裡設置。
我在配置完成之後翻瞭一個錯誤,雖然能正常build出so,但是在run的時候總是提示"java.lang.UsatisfiedLinkError",一直沒有找到問題原因,後來突然想到jni代碼是從NDK sample中copy過來,而調用Native code的Class是自己定義的,跟sample中的不一樣。會不會是Java Class的package name與class name不一致造成的呢?打開JNI代碼一看,發現Natave方法的命名很有規則:Java_com_example_hellojni_HelloJni_stringFromJNI com_example_hellojni應該就是調用Native code的Java package,HelloJni應該就是調用Native code的Java class。而自己的Java Class所在package與sample中一致,區別的隻是Class name,故對自己的Class rename,ok,順利運行!