關於Jni開發中遇到的問題undefined reference to `__android_log_print'

前幾天用到了jni,在開發中遇到一問題,就是我在android studio的c代碼中添加了一個打印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了,可是在編譯的時候卻報了這個錯。Error:(271) undefined reference to `__android_log_print'
當時的我是一臉懵逼,趕緊開始萬能的百度、谷歌,然而並沒有什麼卵用,沒有找到原因。就在我絕望的時候,友誼的小船開來了,一個朋友幫我找到
瞭解決辦法。具體解決辦法如下:

將寫好的jni文件 直接拿出來到一個單獨的目錄 一定要是單獨的 比如 在d盤新建一個文件夾 然後放進去 。

第一步:將android studio 寫好的jni文件 整體拿到一個全新的 目錄下

第二步:cmd 進入到這個jni文件夾的 父目錄

第三步:在該目錄下直接運行ndk-build命令即可

第四步:會在jni的同一級目錄生成 libs文件夾 裏面有各種處理器的.so

so easy,這樣編譯通過了,生成了我們想要的so文件了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章