Android NDK 开发使用 ANDROID_LOG 日志库

定义头文件

common.h

#ifndef CZXING_COMMON_H
#define CZXING_COMMON_H

#include <jni.h>

#ifdef NDK_DEBUG
#define LOG_TAG "yezhou"
#include <android/log.h>

#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, 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__)
#endif

#endif

调用方式

#include "common.h"

extern "C"
JNIEXPORT jint JNICALL
Java_cc_androidx_zxing_code_NativeSdk_writeCode(JNIEnv *env, jobject instance, jstring jcontent,
                                                jint width, jint height, jint color,
                                                jstring jformat, jobjectArray result) {
    const char *content = env->GetStringUTFChars(jcontent, 0);
    const char *format = env->GetStringUTFChars(jformat, 0);
    LOGE("writeCode.content [%s]", content);
    ...
    return 0;
}

引入log库

CMakeLists.txt

find_library(
        log-lib
        log)

target_link_libraries(
        czxing
        ZXingCore

        jnigraphics
        android
        z
        ${log-lib})

Android.mk

LOCAL_MODULE     := ccrypto
LOCAL_LDLIBS     := -llog \
                    -lm
上一篇 Android DrawerLayout简单使用
下一篇 Android自定义Handler使用静态内部类避免内存泄漏
目录
文章列表
1 使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪
使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪
2
Gradle配置Http代理
Gradle配置Http代理
3
jQuery操作checkbox
jQuery操作checkbox
4
高中数学基础:排列与组合
高中数学基础:排列与组合
5
Python Selenium定位一组元素
Python Selenium定位一组元素
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。