对于一个程序来说,什么都可以不开始,但是调试信息首先要出来,优先解决log信息.
所以在第一篇的基础上面加上在jni中添加log信息,具体操作如下:
<1> : 修改Android.mk文件,在其中添加Android的Library库进来:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE :=durianjni
LOCAL_SRC_FILES := durianJni.c
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
实际上增加一行:
LOCAL_LDLIBS := -llog
即可.
<2> : 在c程序中引用:
#include <android/log.h>
#define LOG_TAG "durian"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
<3> : 第三部重新clean一下,并且build,然后运行:
下面做一下扩展:
#define LOG_TAG "durian"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG_TAG,__VA_ARGS__)
程序里面使用上面的如下:
JNIEXPORT jint JNICALL Java_com_durian_jnienv_lib_DurianJni_durianAdd(JNIEnv *env, jobject jobj, jint a, jint b){
int sum=(int)a+(int)b;
LOGI("info : from jni log information !");
LOGD("debug : from jni log information !");
LOGW("warn : from jni log information !");
LOGE("error : from jni log information !");
return (jint)sum;
}
以后就可以照着这个模板打工程的log打印出来,方便程序调试和debug.