美文网首页
在Jni中使用android Log

在Jni中使用android Log

作者: 菜鸟何时起飞 | 来源:发表于2020-10-25 15:29 被阅读0次

1 1. 导入log头文件

在你使用的 .c/ .cpp 文件中

导入 log.h 头文件

include<android/log.h>

2.在Android.mk 中

加上

LOCAL_LDLIBS :=-llog

注意Android.mk里有一行include $(CLEAR_VARS)

必须把LOCAL_LDLIBS :=-llog放在它后面才有用,

否则相当于没写。(这个可以操作 也可以不操作 我自己没有写 也可以)

  1. 定义LOG 函数

先定义一个全局变量,再定义一些输出的LOG函数:

#define TAG "myDemo-jni" // 这个是自定义的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类型   

4 使用

#define TAG    "myhello-jni-test" // 这个是自定义的LOG的标识  
#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,TAG,__VA_ARGS__) // 定义LOGD类型  
  
 extern "C" {  
     JNIEXPORT jstring JNICALL Java_com_snail_helloworld_MainActivity_myhello(JNIEnv * env, jobject obj);  
 };  
  
 JNIEXPORT jstring JNICALL Java_com_snail_helloworld_MainActivity_myhello(JNIEnv * env, jobject obj)  
 {  
     int i = 0;  
     LOGD("########## i = %d", i);  
     return env->NewStringUTF("Hello From CPP");  
 }  

android.mk

LOCAL_PATH := $(call my-dir)  
  
include $(CLEAR_VARS)  
  
LOCAL_MODULE    := hello  
LOCAL_SRC_FILES := hello.cpp  
LOCAL_LDLIBS :=-llog  
  
include $(BUILD_SHARED_LIBRARY) 

相关文章

网友评论

      本文标题:在Jni中使用android Log

      本文链接:https://www.haomeiwen.com/subject/luknmktx.html