首先要確保eclipse的c++開發環境是否搭建好,以後下載ndk,而且把ndk環境搭建好,詳情參見官網。 java
新建一個android工程,以後右鍵工程選擇Android-Tools->add Native Support.輸入名稱後會生成jni目錄,裏面生成cpp文件和mk文件. android
打開cpp文件,在include"jni.h"上會有錯誤提示,找不到該頭文件. c++
右鍵工程,點擊properties 如圖: windows
展開 C/C++ General 選擇Paths and Symbols 在右側窗口中點擊add,在彈框中勾選add to all language 如圖所示: eclipse
以後點擊File System按鈕.選擇 ndk的目錄->platforms->android-x(x是數字)->arch-arm->usr->include 以後點擊Apply. 這個時候cpp文件中的錯誤便會消失. spa
NativeInterface.java 代碼以下: code
public class NativeInterface { public native int getCode(); public native String getMessage(); static{ System.loadLibrary("NDKtest"); } }
loadLibrary中的文件名參見jni目錄下.mk 文件的LOCAL_MODULE字段. orm
在控制檯中進入工程根目錄中的bin目錄下的classes目錄中 ,執行以下命令 : 接口
javah -d <項目目錄>\jni -jni com.example.ndktest.NativeInterface . ip
命令能夠參考 javah --help.
-d 是文件的輸出目錄 ,這裏指定爲根目錄下的jni文件夾, -jni 是生成jni樣式的頭文件 後面的參數是本地方法所在的類,類的路徑名要完整 ,以前已經在classes目錄下了 ,因此類的路徑是從com開始的. 執行完該命令,會在工程下jni目錄中產生com.example.ndktest.NativeInterface.h如圖所示:
打開.h文件如圖所示:
在cpp中添加頭文件的引用include<com.example.ndktest.NativeInterface.h>,將頭文件中的倆個方法拷貝到.cpp文件中 ,去掉方法名JNIEXPORT 和 JNICALL 以後,實現其具體方法,如圖:
如圖:
最後運行
每一次修改java本地接口都要在控制檯中執行javah命令,比較麻煩.
還有另外一種方法,就是建立ant文件,右鍵工程點擊New->File 建立 .ant文件,我起的名字是GenCI,如圖:
,在eclipse菜單中選擇windows->show View 選擇ant ,將剛纔建立的ant文件添加到ant的視圖上 :
打開.ant文件 ,按alt+/ 出現以下圖:
以後將代碼修改成以下:
project name是工程名 default設置爲 .ant文件名 ,而後target name設爲.ant 文件名.
executable是要執行的控制檯命令 這裏是javah. 命令執行路徑是 項目中bin目錄下的classes目錄.
剩下的是命令參數. ,${basedir}是工程根目錄.
以後雙擊antView上的ant文件會自動執行該腳本,生成.h文件.
最後運行項目.
Good Luck