2013-03-25 48 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" 
    } 
} 
}