首先下載配置android studio ndk 1.打開sdkManager下載CMake和LLDB 2.配置ndk 項目新建 項目建立完畢後,工程目錄如下,cpp文件夾是系統自動生成的 3.自定義 navite方法 接下來開始寫自定義的一個native方法,新建一個Hello.java文件,裡面 ...
首先下載配置android studio ndk
1.打開sdkManager下載CMake和LLDB
2.配置ndk
項目新建
項目建立完畢後,工程目錄如下,cpp文件夾是系統自動生成的
3.自定義 navite方法
接下來開始寫自定義的一個native方法,新建一個Hello.java文件,裡面寫一個add求和的native方法,如下
生成c++頭文件
然後在windows控制台Terminal進入hello.java所在的目錄執行javac hello.java,如下
執行完畢後hello.java的同級目錄下麵會生成一個Hello.class文件,證明這一步成功啦!
然後還是在Terminal控制臺上面回退目錄到app/src/main下麵執行命令
javah -d jni -classpath ./java com.example.myapplication.hello,後面是包名+文件名不帶尾碼,請改成自己的包名,如圖
命令執行完畢後會在app/src/main目錄下麵生成一個jni文件夾,文件夾下麵有一個.h尾碼文件,如圖:
新建cpp文件實現navtive 方法
把
com_example_myapplication_hello.h
中的內容複製一份到myjni.cpp中,並添加
com_example_myapplication_hello.h
的引用(引用要改成引號,不然下麵的方法會報紅哦~),刪掉其他代碼,如圖
經過測試Cmake必須將獲得的建立在cpp文件才能編譯通過
配置CMakeLists.txt文件
接下來是關鍵,在android studio3.0以前是沒有此步驟的,大家看工程目錄裡面有一個CMakeLists.txt文件,這個文件是新建項目是自動生成的,裡面已經寫好了系統自動生成的
cpp/native-lib.cpp文件的配置,打開CMakeLists.txt文件,如下,
調用native方法
到此我們基本上已經成功了,然後在Hello.java中添加代碼如下,添加的library名字一定要和上圖中添加的一樣:
最後在activity中調用add方法,
出錯的地方總結:
cmake 編譯會經常提示編譯失敗
出現cmake編譯失敗請在這裡找尋錯誤