一、准備工作
下載NDK: http://dl.google.com/android/repository/android-ndk-r12b-windows-x86_64.zip
二、Android studio 環境配置
路徑: File->Setting->看圖,還有一個NDK要勾選上。

三、新建項目,看圖

四、配置NDK環境
上面三步,建完項目后,會給你建好了demo,demo里有cpp,可以直接跑一邊,感受一下。然后,一臉懵逼,出錯了。。。。。。。。。。。。。。。。
看下面解決辦法
把步驟一種下載好的壓縮包解壓一下。我是放在AS目錄附近。隨便放,你能找到就好。

這就配置好環境了。
五、demo跑一跑,能行了。。。。。
總有一個不安分的心,不修改修改怎么能行。
demo是讓返回string,我偏偏搞個返回int型,還要自己寫個函數體,跑一下。
然后,就直接在MainActivity中寫了個native方法。cpp中生成對應方法。然后,調用函數體。跑一下,立馬報錯
No implementation found for 。。。。。。。。。。。。。。。
這事什么情況?函數體聲明過了。AS沒有報錯和警告,一運行就報錯。
然后給出正確代碼,你自己領悟:
#include <jni.h> #include <string> extern "C"{ int count(); JNIEXPORT jstring JNICALL Java_com_ailin_shoneworn_ndkdemo_MainActivity_stringFromJNI( JNIEnv *env, jobject /* this */) { std::string hello = "Hello from C++"; return env->NewStringUTF(hello.c_str()); } int count(){ int a =1; int b=2; return a+b; } JNIEXPORT jint JNICALL Java_com_ailin_shoneworn_ndkdemo_MainActivity_intFromJni(JNIEnv *env, jobject instance, jint x, jint y) { // TODO return count(); } }
總結: C++已經有太久沒用了,很多東西都遺忘了。哎!
上面,只需要在函數體外extend ”C"處加上{ },把兩個函數體都括起來就好了。
