开发过程中增加打印信息是必须的,在jni中printf属于linux应用的打印机制,在androd系统当中没有对应的输出机制,只有在终端下执行时才能回显出来,在jni中正确的打印方式应该是 调用NDK 下的log.h 来打印Log 日志,具体方法如下:
1.导入log库
在build.gradle中加入ldLibs "log"
:
android {
defaultConfig {
ndk{
ldLibs "log"
}
}
}
加入ldLibs "log"
以后,gradle会自动在项目的app/build/intermediates/ndk/debug底下的Android.mk中加入:
LOCAL_LDLIBS := -llog
2.导入log头文件
在.c或者.cpp文件中加入log.h头文件:
#include<android/log.h>
3.使用
可以先定义一个log tag:
#define TAG "GOODLUCK"
再定义各个等级的log方法:
•#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__) // 定义LOGD类型
•#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__) // 定义LOGI类型
•#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__) // 定义LOGW类型
•#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__) // 定义LOGE类型
•#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__) // 定义LOGF类型
使用:
LOGE("jni test");
LOGE("jni test width = %d",1);
LOGE("jni test str = %s","test");
加参数的打印类似于printf
网友评论