JNI编程之打印log
来源:互联网 发布:龙华新区离婚网络预约 编辑:程序博客网 时间:2024/05/16 02:49
使用AS开发的过程中经常使用需要各种调试手段,查看log输出正是其中一种。
Java层输出log很简单,只需要使用Log.x(TAG, String); 即可,AS下Alt+Enter键可以很好的帮我们import所依赖的包,这里不再赘述。值得注意的是,为了调试方便,最好为每个java文件定义一个独立的TAG, adb -s TAG可以很好的过滤我们需要的log。
既然Java层下很容易输出log,那么JNI层呢? 是不是也那么容易? 其实不那么容易,笔者在这里就遇到了点小困难,希望为看到这份博客的人解惑。
(1)首先要包含对应的头文件
#include <android/log.h>
(2) 通过查阅log.h文件,发现函数定义的很有“特色”,使用起来很不方便,于是又做了如下改进:
#include <android/log.h>#define TAG "NativeLogTAG"#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG,__VA_ARGS__)#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG,__VA_ARGS__)#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG,__VA_ARGS__)#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG,__VA_ARGS__)#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG,__VA_ARGS__)#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL, TAG,__VA_ARGS__)
如何通过调用对应的宏即可输出各种级别的log。TAG根据具体需要再行定义即可。
(3)然而当尝试编译的时候发现出现如下错误:
undefined reference to `__android_log_print'
其实细心的同学会发现,后面还有link failed之类的错误。显然,这里是因为没有连接对应的库造成的。
只需要在编译的时候使用-l连接对应的库就OK了,那么这就需要需改Android.mk文件。
LOCAL_LDLIBS := -llog
注意这条语句一定要处在include $(CLEAR_VARS) 之后。
到此就可以使用定义的宏输出log了。
阅读全文
0 0
- JNI编程之打印log
- Android之JNI打印调试信息-LOG打印
- android jni打印log
- jni 打印Log消息
- Android JNI打印Log
- JNI Log 打印
- JNI 中打印Log
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- 11.Android之JNI实现函数中LOG打印
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- 基于Android NDK的学习之旅-----JNI LOG打印
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- JNI开发之c代码中LOG打印调试信息
- 菲索干涉仪 (Fizeau interferometer) 的基本原理
- thinkphp5剖析 模型查询对象类型转数组
- centos6 ,7 使用yum 安装最新nginx版本
- OpenGL Study
- express+webpack+vue.js项目搭建
- JNI编程之打印log
- C++primer学习笔记----面向对象程序设计(1)
- github常用操作
- 欢迎使用CSDN-markdown编辑器
- centos6.5将python2.6.6升级到python2.7以及easy_install和pip
- TCP三次握手/四次挥手+HTTP过程+Socker原理
- 简单的自定义内存分配器
- 题解:Binary Tree Inorder Traversal
- iOS11 新特性-Core ML (一)简介