最近在学习音视频的内容,在编写jni报错之后,在android的logcat中只能查看出时在哪个函数,哪个地方null point了或者是参数错误,但是缺无法定位到哪一行,这样就要在这个方法中寻找问题,那么就需要在jni中使用log来输出查看结果。
1、在cmakeLists.txt文件中引入android包
find_library(
log-lib
log)
target_link_libraries( # Specifies the target library.
audiotrackplay
#添加android本地库
android
${log-lib})
接着就可以新建一个logcatUtils.h的文件
#ifndef AUDIOTRACKPLAY_LOGUTILS_H
#define AUDIOTRACKPLAY_LOGUTILS_H
#include <android/log.h>
#define TAG "++++++++" // 这个是自定义的LOG的标识
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG ,__VA_ARGS__) // 定义LOGD类型
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG ,__VA_ARGS__) // 定义LOGI类型
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,TAG ,__VA_ARGS__) // 定义LOGW类型
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG ,__VA_ARGS__) // 定义LOGE类型
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,TAG ,__VA_ARGS__) // 定义LOGF类型
#endif //AUDIOTRACKPLAY_LOGUTILS_H
最后使用的方式就和android中使用一样了
void start(){
LOGI("这个是info的");
LOGE("这个对应android的error级别%d", d)
}
配合输出的结果%d这个还是按照C语言的print方式进行输出的。