Android_NDK调试

第一步:

链接log动态库

在Android.mk文件中添加

LOCAL_LDLIBS +=-llog

注意:一定要在

复制代码
include $(BUILD_SHARED_LIBRARY)

之上添加,因为当执行到这句话的时候就表示所有的lib动态库已经加载完毕了,所以当你在这句代码之后再添加链接动态库的命令时,动态库是加载不成功的,当执行ndk-build时,会报链接不到动态库的错误

第二步:

在对应的CPP文件中添加

复制代码
#include <android/log.h>

第三步:

在CPP文件中使用__android_log_print函数打印日志

该函数有三个参数,第一个为打印日志的类型取值有:

ANDROID_LOG_DEFAULT,

ANDROID_LOG_VERBOSE,

ANDROID_LOG_DEBUG,

ANDROID_LOG_INFO,

ANDROID_LOG_WARN,

ANDROID_LOG_ERROR,

ANDROID_LOG_FATAL,

ANDROID_LOG_SILENT

第二个为自定义的日志的Tag

第三个为可变参数,输出的日志信息

建议定义宏使用,如下:

#ifndef LOG_TAG

#define LOG_TAG "my_tag"

#define LOGINFO(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,VA_ARGS)

#define LOGERR(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,VA_ARGS)

Char* str = "my info";

LOGINFO("配置信息:%s", str);

第四步:

重新ndk-build一下CPP程序

第五步:

重新Refresh Linked C++ projects

相关推荐
liang_jy1 小时前
Android 事件分发机制(二)—— 点击事件透传
android·面试·源码
圆号本昊4 小时前
Flutter Android Live2D 2026 实战:模型加载 + 集成渲染 + 显示全流程 + 10 个核心坑( OpenGL )
android·flutter·live2d
冬奇Lab5 小时前
ANR实战分析:一次audioserver死锁引发的系统级故障排查
android·性能优化·debug
冬奇Lab5 小时前
Android车机卡顿案例剖析:从Binder耗尽到单例缺失的深度排查
android·性能优化·debug
ZHANG13HAO5 小时前
调用脚本实现 App 自动升级(无需无感、允许进程中断)
android
圆号本昊6 小时前
【2025最新】Flutter 加载显示 Live2D 角色,实战与踩坑全链路分享
android·flutter
小曹要微笑7 小时前
MySQL的TRIM函数
android·数据库·mysql
mrsyf8 小时前
Android Studio Otter 2(2025.2.2版本)安装和Gradle配置
android·ide·android studio
DB虚空行者8 小时前
MySQL恢复之Binlog格式详解
android·数据库·mysql