android studio 手把手叫你NDK開發環境搭建及基礎使用


一、准備工作

下載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"處加上{ },把兩個函數體都括起來就好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM