2013-03-25 46 views
0

我正在编译android应用程序的第三方c库作为共享库。我想将android日志记录添加到c库的源代码中,以便我可以看到使用什么参数调用了哪些方法。但我无法让它工作。我试过如下:如何让android登录共享库?

  1. 到Android.mk添加-llog的C库

    LOCAL_CFLAGS:=:= ... -llog

  2. 头文件添加到源文件ABC .c其中我想记录

    的#include <的Android/log.h>

  3. 附加线

    __android_log_print(ANDROID_LOG_DEBUG,“MyApp”,“This is method X”);

错误:__android_log_print无法识别。

我该怎么做才能使它工作?

回答

0

__android_log_print取第3个之后的可变参数,printf状参数。使用

__android_log_write(ANDROID_LOG_DEBUG, "MyApp", "This is method X"); 

相反,对于无外部参数日志记录。

编辑:-llog是一个链接器标志,而不是一个编译器。删除

LOCAL_CFLAGS := := ... -llog 

,而是写

LOCAL_LDLIBS := -llog 
+0

的错误信息是相同的:错误:未定义的引用“__android_log_write” – windchime 2013-03-26 17:07:05

+0

编译器或链接错误? – 2013-03-26 17:12:50

+0

链接器错误(collect2:ld返回1退出状态) – windchime 2013-03-26 18:06:40

0

如果您使用Android Studio和gradle这个,它忽略Android.mk。添加到您的build.gradle文件:

android { 
    defaultConfig { 
    ndk { 
     moduleName "your_module_name" 
     ldLibs "log" 
    } 
} 
}