前幾天用到了jni,在開發(fā)中遇到一問題惫谤,就是我在android studio的c代碼中添加了一個(gè)打印log的代碼,如下:
#include <android/log.h>
//#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
//#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , TAG, __VA_ARGS__)
//#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , TAG, __VA_ARGS__)
//#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , TAG, __VA_ARGS__)
//#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , TAG, __VA_ARGS__)
然后便在代碼中愉快的打印log了近零,可是在編譯的時(shí)候卻報(bào)了這個(gè)錯(cuò)诺核。Error:(271) undefined reference to `__android_log_print'
當(dāng)時(shí)的我是一臉懵逼抄肖,趕緊開始萬能的百度、谷歌窖杀,然而并沒有什么卵用漓摩,沒有找到原因。就在我絕望的時(shí)候入客,友誼的小船開來了管毙,一個(gè)朋友幫我找到
了解決辦法。具體解決辦法如下:
將寫好的jni文件 直接拿出來到一個(gè)單獨(dú)的目錄 一定要是單獨(dú)的 比如 在d盤新建一個(gè)文件夾 然后放進(jìn)去 桌硫。
第一步:將android studio 寫好的jni文件 整體拿到一個(gè)全新的 目錄下
第二步:cmd 進(jìn)入到這個(gè)jni文件夾的 父目錄
第三步:在該目錄下直接運(yùn)行ndk-build命令即可
第四步:會(huì)在jni的同一級(jí)目錄生成 libs文件夾 里面有各種處理器的.so
so easy,這樣編譯通過了夭咬,生成了我們想要的so文件了。