當前位置:首頁 » 安卓系統 » androidjnilog

androidjnilog

發布時間: 2022-10-16 21:52:53

Ⅰ 如何在ANDROID JNI 的C++中打Log

最近在研究Android 2.3.3源代碼的C/C++層,需要對代碼進行一些調試,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat卻看不到任何輸出,換成LOGI、LOGV、LOGW、LOGE也沒有效果。於是在網上查找解決方法,經過幾次試驗,終於找到了,現在貼到下面備忘:

第一步:在對應的mk文件中加入:LOCAL_LDLIBS := -llog
第二步:在要使用LOG的cpp文件中加入:
#include <android/log.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__)
第三步:這樣就可以使用了:LOGD("我要看到的調試信息^_^");
這樣,在logcat端看到的輸出是:
D/keymatch( 32):我要看到的調試信息^_^
如果想改變輸出中的各項內容,可以參考相應顏色的標示,比如,如果想定義LOGE,就可以把上面的ANDROID_LOG_DEBUG改成ANDROID_LOG_ERROR,同理,LOGI神馬的也都以此類推:

#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "ProjectName", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "ProjectName", __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "ProjectName", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "ProjectName", __VA_ARGS__)

當然,如果不嫌麻煩,也可以直接使用__android_log_print函數,而不define定義LOGxxx
如果還想了解更詳細的內容,也可以參考這篇文章: 《在android 輸出log 信息 用於調試》
另外,有文章稱此方法在編譯動態庫的時候可能會出問題,會提示cannot find -llog的錯誤。意思是找不到liblog.so這個庫文件。
因此需要改成 LOCAL_LDLIBS:= -L$(SYSROOT)/usr/lib -llog 才可以正常編譯。但是我這邊編譯動態庫的時候,好像不用這樣改也行,沒發現編譯時提示「cannot find -llog」的錯誤。

Ⅱ 如何在ANDROID JNI 的C++中打Log

最近在研究Android 2.3.3源代碼的C/C++層,需要對代碼進行一些調試,但是奇怪的是,直接添加LOGD("Test");,使用logcat卻看不到任何輸出,換成LOGI、LOGV、LOGW、LOGE也沒有效果。於是在網上查找解決方法,經過幾次試驗,終於找到了,現在貼到下面備忘:
第一步:在對應的mk文件中加入:LOCAL_LDLIBS := -llog
第二步:在要使用LOG的cpp文件中加入:
#include <android/log.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__)
第三步:這樣就可以使用了:LOGD("我要看到的調試信息^_^");

Ⅲ 如何在ANDROID JNI 的C++中打Log

頭文件:
#include <android/log.h>
列印日誌方法:ANDROID_LOG_ERROR表示日誌級別
__android_log_print(ANDROID_LOG_ERROR,"tag","log string");

Ⅳ 如何在ANDROID JNI 的C++中打Log

最近在研究Android 4.2.2源代碼的C/C++層,需要對代碼進行一些調試,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat卻看不到任何輸出,換成LOGI、LOGV、LOGW、LOGE也沒有效果。於是在網上查找解決方法,經過幾次試驗,終於找到了,現在貼到下面備忘:
第一步:在對應的mk文件中加入:LOCAL_LDLIBS := -llog
第二步:在要使用LOG的cpp文件中加入:
#include
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__)
第三步:這樣就可以使用了:LOGD("我要看到的調試信息^_^");這樣,在logcat端看到的輸出是:D/keymatch( 32):我要看到的調試信息^_^如果想改變輸出中的各項內容,可以參考相應顏色的標示,比如,如果想定義LOGE,就可以把上面的ANDROID_LOG_DEBUG改成ANDROID_LOG_ERROR,同理,LOGI神馬的也都以此類推:
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "ProjectName", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "ProjectName", __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "ProjectName", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "ProjectName", __VA_ARGS__)
當然,如果不嫌麻煩,也可以直接使用__android_log_print函數,而不define定義LOGxxx如果還想了解更詳細的內容,也可以參考這篇文章:《在android 輸出log 信息 用於調試》另外,有文章稱此方法在編譯動態庫的時候可能會出問題,會提示cannot find -llog的錯誤。意思是找不到liblog.so這個庫文件。因此需要改成 LOCAL_LDLIBS:= -L$(SYSROOT)/usr/lib -llog 才可以正常編譯。但是我這邊編譯動態庫的時候,好像不用這樣改也行,沒發現編譯時提示「cannot find -llog」的錯誤。

Ⅳ 如何在ANDROID JNI 的C++中打Log

c++文件引入一個頭文件android/log.h
要列印log的地方調用這個方法:_android_log_print(level, tag, content);
level就是log的等級,類似android log的verbose,debug,info,warn,error五個等級,有常量對應,比如:ANDROID_LOG_INFO
tag是log標簽,content是log內容
最後android.mk文件里加一句

LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog

Ⅵ 如何在ANDROID JNI 的C++中打Log

第一步:在對應的mk文件中加入:LOCAL_LDLIBS := -llog
第二步:在要使用LOG的cpp文件中加入:
#include
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__)
第三步:這樣就可以使用了:LOGD("我要看到的調試信息^_^"); 這樣,在logcat端看到的輸出是: D/keymatch( 32):我要看到的調試信息^_^ 如果想改變輸出中的各項內容,可以參考相應顏色的標示,比如,如果想定義LOGE,就可以把上面的ANDROID_LOG_DEBUG改成ANDROID_LOG_ERROR,同理,LOGI神馬的也都以此類推:
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "ProjectName", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "ProjectName", __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "ProjectName", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "ProjectName", __VA_ARGS__)

當然,如果不嫌麻煩,也可以直接使用__android_log_print函數,而不define定義LOGxxx 如果還想了解更詳細的內容,也可以參考這篇文章: 《在android 輸出log 信息 用於調試》 另外,有文章稱此方法在編譯動態庫的時候可能會出問題,會提示cannot find -llog的錯誤。意思是找不到liblog.so這個庫文件。 因此需要改成 LOCAL_LDLIBS:= -L$(SYSROOT)/usr/lib -llog 才可以正常編譯。但是我這邊編譯動態庫的時候,好像不用這樣改也行,沒發現編譯時提示「cannot find -llog」的錯誤。

Ⅶ 如何在ANDROID JNI 的C++中打Log

最近在研究Android 2.3.3源代碼的C/C++層,需要對代碼進行一些調試,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat卻看不到任何輸出,換成LOGI、LOGV、LOGW、LOGE也沒有效果。於是在網上查找解決方法,經過幾次試驗,終於找到了,現在貼到下面備忘:
第一步:在對應的mk文件中加入:LOCAL_LDLIBS := -llog
第二步:在要使用LOG的cpp文件中加入:
#include <android/log.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__)
第三步:這樣就可以使用了:LOGD("我要看到的調試信息^_^");

這樣,在logcat端看到的輸出是:

Ⅷ 如何在ANDROID JNI 的C++中打Log

第一步:在對應的mk文件中加入:

LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)

第二步:在要使用LOG的cpp文件中加入:
#include "alog.h"

ALOGV("4444444444444444 ");

#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "ProjectName", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "ProjectName", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "ProjectName", __VA_ARGS__)

log 級別有很多 : ANDROID_LOG_UNKNOWN, ANDROID_LOG_DEFAULT, ANDROID_LOG_VERBOSE, ANDROID_LOG_DEBUG, ANDROID_LOG_INFO, ANDROID_LOG_WARN, ANDROID_LOG_ERROR, ANDROID_LOG_FATAL, ANDROID_LOG_SILENT

熱點內容
linuxc的函數返回值 發布:2025-01-24 19:35:23 瀏覽:664
威綸編程軟體反編譯 發布:2025-01-24 19:30:26 瀏覽:48
網路存儲單元 發布:2025-01-24 19:28:04 瀏覽:167
自解c語言 發布:2025-01-24 19:27:08 瀏覽:646
安卓錄制的視頻為什麼有迴音 發布:2025-01-24 19:25:31 瀏覽:447
ip代理伺服器搭建 發布:2025-01-24 19:25:29 瀏覽:287
188腳本 發布:2025-01-24 19:25:19 瀏覽:820
電子商務搭建伺服器的模式 發布:2025-01-24 19:15:13 瀏覽:155
電腦怎麼連接伺服器存儲 發布:2025-01-24 19:13:32 瀏覽:351
qq郵箱傳文件夾怎麼傳 發布:2025-01-24 19:03:22 瀏覽:765