天天看點

android ndk 入門之列印log資訊

NDK開發中JNI列印log資訊 1、引入頭檔案 #include <android/log.h>

2、Android.mk中加入LOCAL_LDLIBS+= -L$(SYSROOT)/usr/lib -llog

3、列印info資訊:__android_log_print(ANDROID_LOG_INFO, "JNITag","string From Java To C : %s", str); 

4、如果從Java接收字元串,有可能發生編碼方式不一緻而列印出亂碼,可以執行如下操作 JNIEXPORT void JNICALL JAVA_com_xl_qiu_hellojni(JNIEnv *env, jobject this, jstring prompt) { const jbyte *str = (*env)->GetStringUTFChars(env, prompt, NULL); if (str == NULL) __android_log_print(ANDROID_LOG_ERROR, "JNITag", "Error...."); __android_log_print(ANDROID_LOG_INFO, "JNITag","string From Java To C : %s", str); 

(*env)->ReleaseStringUTFChars(env, prompt, str); }

注:  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,“***”) // LOG類型:debug

  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,“***”) // LOG類型:info

 __android_log_print(ANDROID_LOG_WARN,LOG_TAG,“***”) // LOG類型:warning

 __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,“***”) // LOG類型:error

  __android_log_print(ANDROID_LOG_FATAL,LOG_TAG,“***”) // LOG類型:Verbose???

以上轉自:http://blog.csdn.net/qiuxiaolong007/article/details/7548580

特别注意:不能包含中文,否則列印不出log __android_log_print(ANDROID_LOG_DEBUG,"ndk_tag","i am from ndk ndk log ---- %s --- %d",__FILE__,__LINE__); __android_log_print(ANDROID_LOG_DEBUG,"ndk_tag","i am from ndk ndk log");

__android_log_print(ANDROID_LOG_INFO, "JNITag","string From Java To C : %s", "abcd");

06-17 21:29:33.837: D/ndk_tag(29312): i am from ndk ndk log ---- jni/com_example_demo_ndk_MainActivity.c --- 10 06-17 21:36:41.050: D/ndk_tag(30911): i am from ndk ndk log

06-17 21:29:33.837: I/JNITag(29312): string From Java To C : abcd