最近在學習簡單的JNI的調用,但由於我看的視頻教程是用eclipse作爲IDE的,而我用的是android studio1.5,所以過程中遇到的一些問題(剛剛入門,各種問題很困擾啊!)
所以來分享一下我的解決方法
studio下NDK的配置:請看這篇文章: https://segmentfault.com/a/1190000003999352 (有圖,解釋的挺詳細的,我按這個弄得,成功了)
接下來就是寫代碼過程中的問題了(代碼不多,先將就着看吧(還沒用過markdown編輯器))
這是會被調用的C代碼
#include "Hello.h"
#include <stdio.h>
#include <jni.h>
jstring Java_com_example_gw_helloworldfromc_MainActivity_helloWorldFromC(JNIEnv* env,jobject obj){
return (*env)->NewStringUTF(env,"hello-world-from-c");
}
的路徑(注意:路徑一定要正確,最後的方法名和java中調用使用的方法名要完全一致,
否則會爆找不到native方法的錯誤)
static {注意c函數庫的導入要和build-gradle中命名的庫名一致
System.loadLibrary("hello");//導入庫,名字要一致
}
public native String helloWorldFromC();//即便能正確編譯運行這個方法名也是顯示爲紅色(android studio1.5), 不用處理這個報錯也能能正確運行,不知道爲啥
很多問題還不知道解決的原理是什麼,歡迎大家指教