JNI中使用LOGCAT 进行Debug
来源:互联网 发布:手机扫描录入软件 编辑:程序博客网 时间:2024/05/18 15:29
http://blog.csdn.net/llwdslal/article/details/31733035
在jni的c代码中使用printf函数打印日志不会显示到Logcat,也不会显示到console上。Logcat日志输出需要额外配置。
Jni中Logcat的日志输出在log.h中定义,log.h文件目录为:android-ndk-r9/platforms/android-18/arch-arm/usr/include/android/log.h。也就是说每个platforms下都有。
int __android_log_write(int prio, constchar *tag, const char *text)是将Log写到文件中
int __android_log_print(int prio, const char*tag, const char *fmt, ...)是将日志输出到Logcat.
Prio是Log的级别,也就是 v,I,e,w啥的,具体定义下面再说。Tag 就是日志的Tag了, fmt是日志输出的信息。
Prio的定义:
typedef enum android_LogPriority {
ANDROID_LOG_UNKNOWN = 0,
ANDROID_LOG_DEFAULT, /* onlyfor SetMinPriority() */
ANDROID_LOG_VERBOSE,
ANDROID_LOG_DEBUG,
ANDROID_LOG_INFO,
ANDROID_LOG_WARN,
ANDROID_LOG_ERROR,
ANDROID_LOG_FATAL,
ANDROID_LOG_SILENT, /* onlyfor SetMinPriority(); must be last */
} android_LogPriority;
枚举是int值不用解释吧。
使用方法:
参照ndk自带的例子Plasma.
1.在需要输出日志的.c文件中导入.h文件及定义宏
#define LOG_TAG "libplasma"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
这个是定义了i和e的宏,举一反三 其他的也就会了。
2.使用宏进行日志输出
很简单上了代码 一看就懂,就是调用了下宏
LOGE("AndroidBitmap_getInfo()failed ! error=%d", ret);
3.在.mk文件中引用日志库
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := plasma
LOCAL_SRC_FILES := plasma.c
LOCAL_LDLIBS := -lm -llog -ljnigraphics
include $(BUILD_SHARED_LIBRARY)
-llog 就表示引入了liblog.so这个链接库LOCAL_LDLIBS 的用法请查看Android.mk语法。
- JNI中使用LOGCAT 进行Debug
- 在jni中使用Logcat
- 如何在JNI编程中使用logCat
- 如何在JNI编程中使用logCat
- 如何在JNI编程中使用logCat
- android 如何在JNI编程中使用logCat
- Android JNI(3) --在C代码中使用logcat
- Android中使用jni进行本地开发
- 使用awk进行logcat过滤
- Android Logcat和Debug的使用
- Android中关于JNI 的学习(五)在C文件中使用LogCat
- jni使用基础(六)之在c代码中使用logcat
- NDK开发中利用Logcat调试JNI
- Android JNI中增加LOGCAT,LOG
- JNI本地文件中打印输出到LOGCAT
- Android中记录与调试——Logcat和Debug的使用
- Android中记录与调试——Logcat和Debug的使用
- Android中记录与调试——Logcat和Debug的使用
- [刷题]Permutations
- Android XML解析技术——DOM
- Android自定义对话框
- zbox的测试例——selectAll+selectInverse
- 漫画:应对海量数据 实现灵活拓展云存储
- JNI中使用LOGCAT 进行Debug
- iOS "xxx" is missing from working copy
- MS SQLserver mysql
- 第二周上机项目1 旱冰场造价
- CentOS 7通过yum安装fcitx五笔输入法
- C++中关于内部与外部函数
- 编译cocos2dx工程,生成libcocos2dcpp.so文件失败
- GLEW配置
- JavaWeb学习笔记(5)--HTTP协议概述