具體配置過程就不冗述了,網上一搜一大堆。主要是:java
1)下載Android NDK;windows
2)安裝Cygwin;eclipse
3)在Cygwin中配置Android NDK的環境變量。說白了,就是將windows系統下的NDK路徑映射到Cygwin環境下,以便後期編譯的時候能找到對應目錄;工具
4)在Eclipse中設置Android project的屬性,經過設置working環境與命令,調用Cygwin的編譯工具來生成動態鏈接庫。ui
安裝Cygwin是爲了與NDK工具一塊兒生成本地代碼的動態鏈接庫。具體的調用命令能夠在eclipse中的project屬性裏設置。code
我在配置完成以後翻了一個錯誤,雖然能正常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,順利運行!ip