Android Studio2.3 NDK “Hello JNI”

關于在Android studio中進行NDK開發(fā)有不少文章,但是都是在比較低的Android studio上進行開發(fā)的。我用的是2.3版本的,照著博客上的抄下來各種莫名其妙的錯誤。google官網中對于ndk示例使用的是Cmake。如果你是新建的項目那么建議使用Cmake編譯。但是如果之前就使用了ndk build進行的編譯,那么就需要繼續(xù)使用ndk build了??上Ч倬W沒有給出如何在Android studio上使用ndk build。進過查找資料,終于搞好了。功能也比較簡單,就是通過JNI返回一個字符串。

Update:

上邊說錯了,google Sample里關于使用ndk build的示例在branch中。大家可以參考。


第一步:創(chuàng)建一個普通的工程

第二步:在需要進行JNI調用的model上右鍵創(chuàng)建一個jni文件夾。


第三步:創(chuàng)建一個包含native方法的java文件

第四步:使用javah生成頭文件(要先生成class文件)
javah命令模板配置??

詳細配置參考以上鏈接。下面是我的配置。需要說明的是在上面這個博文中還配置了ndk_build的命令模板,但是經過我的實驗雖然可以打包成功,但是生成的so文件在打包到apk中出現(xiàn)問題。導致動態(tài)庫加載不到。



配置好之后,右鍵MyNdk,執(zhí)行javah命令,生成.h文件。


第五步:將生成的.h文件剪切到jni目錄下,并創(chuàng)建一個對應的實現(xiàn)類(C++我也不懂,暫且這么叫吧)

如圖,MyLibrary.cpp就實現(xiàn)了.h文件。返回一個字符串。


第六步:編寫mk文件。


mk文件如上圖jni目錄下。文件內容:


第七步:編寫gradle.build文件(這一步很重要,和其他博文中的不一樣)

```

android {

externalNativeBuild {

ndkBuild {

path'src/main/jni/Android.mk'

}

}

compileSdkVersion25

buildToolsVersion"25.0.2"

......

}

```
可以看到,這里直接指定mk文件的位置。有點類似于CMake的使用方式。


第八步:
可以在java代碼中調用了。


環(huán)境配置:android studio 2.3

更多的用法可以參考官方的Demo:https://github.com/googlesamples/android-ndk/tree/master-ndkbuild


后期有時間會繼續(xù)跟新。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容