`

android ndk log

 
阅读更多
Android NDK发布后,java+C的编程方式成为android上性能编程的首选。
但在C中调试困难,因此能使用logcat成为必须的要求。
关于在Native代码中使用logcat,网上有很多说法,大部分有所欠缺,有的根本是错的。
要使用logcat,首先在代码中要引入 log的头文件。
#include <android/log.h>
然后你可以简单的通过
__android_log_write(ANDROID_LOG_ERROR,"Tag","Message"); 方法向logcat输出。
log 级别有很多  :
    ANDROID_LOG_UNKNOWN,
    ANDROID_LOG_DEFAULT,  
    ANDROID_LOG_VERBOSE,
    ANDROID_LOG_DEBUG,
    ANDROID_LOG_INFO,
    ANDROID_LOG_WARN,
    ANDROID_LOG_ERROR,
    ANDROID_LOG_FATAL,
    ANDROID_LOG_SILENT,
这样写完以后,如果直接编译,就会报 __android_log_write 方法undefined.
怎么回事呢?关键是在设置编译选项上面。
在Android.mk文件里,可以指定一个LOCAL_LDLIBS的参数。如果不指定,那么编译的时候,只会引入默认的几个重要的lib,比如libc之类的。
如果要用log,那就要把 liblog给引进来。
网上很多的写法是 LOCAL_LDLIBS := -llog ,这在build static lib的时候没什么问题。如果是build shared lib,就会报个 cannot find -llog的错误。意思是找不到liblog.so这个库文件。
因此需要改成 LOCAL_LDLIBS :=  -L$(SYSROOT)/usr/lib -llog 才可以正常编译。
其中-L参数是指定了搜索lib的路径。
下面是一个android.mk的内容的例子:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := TestNdkNetwork
LOCAL_SRC_FILES := HttpConnection.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)

分享到:
评论

相关推荐

    log4cpp Android NDK 开发

    Android NDK开发 log4cpp

    log4cpp Android NDK 测试程序

    log4cpp android ndk

    基于 Android NDK 的学习之旅-----JNI LOG 打印

    基于 Android NDK 的学习之旅-----JNI LOG 打印 eclipse工程文件

    Android NDK环境搭建与配置说明

    NDK全称:Native Development Kit。  1、NDK是一系列工具的集合。...从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。

    android保存log到SD卡中

    android保存log到SD卡中

    NDK开发C/C++配置Log打印日志

    NDK开发C/C++配置Log打印日志,可以参考:https://blog.csdn.net/niuba123456/article/details/80991477

    NDK C程序中打印示例myjni

    在 NDK 中, printf() 没法输出,所以我们需要借助 log 库来将我们 c 代码库中需要输出的内容,通过 java 控制台输出。调用函数 __android_log_print(), 就可以在 Eclipse 中,查看 LogCat 来查看相关的输出信息了。

    android log 分析

    安卓开发之常见死机问题--log分析,一般在平时一般在平时工作中,基本上很多代码可以在eclipse+ndk进行调试,但如果需要用到具体的硬件设备,如媒体播放设备无法模拟的情况下,只能上硬件(盒子或手机)上进行调试。...

    离线版Android人脸检测,人脸识别和活体检测SDK 封装交流

    离线版Android人脸检测,人脸识别和活体检测反作弊 SDK 封装交流学习,SDK包含...设备型号,错误log等信息。或anylife.zlb@gmail.com 交流 注:CPU 建议64位 ARM Cortex-A53 1.8GHz以上配置,外接摄像头请切换为标志1

    Busybox for Android v1.20.2

    You can build by yourself from my github's project: (forked from tias/android-busybox-ndk) https://github.com/linusyang/android-busybox-ndk [Information] BusyBox v1.20.2-linusyang (2012-08-12 21:41:...

    Android JNI日志工具类

    Android JNI日志工具类,面去了每次手写android_print_info的繁琐写法,只需要导入头文件即可

    Android native code crash分析工具stack

    一个用于分析Android本地代码crash的工具 出现crash以后,用logcat -s DEBUG把crash的log打印保存下来,例如crash_log.txt...例如ndk-stack -sym out/target/product/mt5520_cn_android_64/symbols -dump crash_log.txt

    crashlog:Android 应用程序崩溃日志保存到文件

    ##edit $vi local.properties sdk.dir=&lt;your&gt;ndk.dir=&lt;your&gt;NDKBUILD=ndk-build (linux, mac) or ndk-build.cmd &#40;windows&#41;##Complie $make or ./gradlew assemble编译。 ls app/build/outputs/apk/app-...

    Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库

    Note:这篇文章是基于Android Studio 3.01版本的,NDK是R16。 step1:创建一个包含C++的项目 其他默认就可以了。 C++ Standard 指定编译库的环境,其中Toolchain Default使用的是默认的CMake环境;C++ 11也就是C++...

    NDK 数据结构之队列与栈等的实现

    NDK 数据结构之队列与栈等的实现 com_tz_ndk_cpp_NDKCpp.h /* DO NOT EDIT THIS FILE - it is machine generated */ #include /* Header for class com_tz_ndk_cpp_NDKCpp */ #ifndef _Included_...

    android下live555 rtsp库的移植,及其本地文件推流到rtsp地址demo

    包含2大块功能:第一,如何利用ndk构建工具,在android平台下移植live555 rtsp库到jni中;第二,移植成功后,将测试文件push到sdcard中,启动apk,推流文件中的数据, 即可在客户端用vlc播放器打开rtsp地址播放。...

    hello-jni.tar.gz 实例

    该资源是hello-jni.tar.gz 实例,来源于android-ndk-r8e的sample。博主已经编译生成shared library,以备分析汇编文件使用。libs/armeabi目录下有博主生成的log.obj、log.elf、log.hex,分别由arm-robin-linux-...

    traceroute-for-android:适用于Android的traceroute

    适用于Android的traceroute 在Android上使用traceroute的简单方法。 描述 Traceroute跟踪从IP网络获取的路由数据包到达给定主机的过程。 它利用IP协议的生存... success { Log .d( " tag " , " \n traceroute finis

    TorrServer:种子流服务器

    按照说明安装golang 1.16+: ://golang.org/doc/install 转到目录到源在linux build-all.sh下运行构建脚本对于构建网页,需要安装npm 对于构建android服务器需要android工具链下载android ndk并将android-ndk-XXX /...

    sentry-java:用于Java,Android和其他JVM语言的Sentry SDK

    sentry-android-ndk 16 岗哨Android木材 14 哨兵 14 哨兵服务程序 哨兵弹簧启动启动器 哨兵 哨兵回送 sentry-log4j2 有用的链接和文档 当前Javadocs。 Java SDK版本1.x。 从迁移。 从迁移页面。 从...

Global site tag (gtag.js) - Google Analytics