2011-10-10 38 views
2

我有現成的,我目前正在建設成可經由NDK本地lib和Android應用原生的C/C++代碼。本地代碼充斥着打印語句到stdout和stderr。有這樣的最佳做法嗎?我可以忽略它們嗎?還是需要將它們重定向到Android日誌記錄系統?Android NDK本機LIB,關於現有的stdio怎麼辦?

我建立了現有的代碼作爲一個獨立的本機二進制和通過ADB運行它和我所看到的所有輸出的printf(到stdout)控制檯。

似乎是一個愚蠢的問題要問,但是在哪裏呢STDIO去一個Android應用程序?

回答

1

默認情況下,輸出和錯誤被髮送到/ dev/null的(無門)for Android應用程序。

您可以使用adb setprop將log.redirect-stdio設置爲true,或將「log.redirect-stdio = true」放入/data/local.prop(您可能需要創建root訪問權限,但更多可靠)。這樣做會將其輸出發送到logcat日誌。

請參閱「查看輸出和錯誤」:http://developer.android.com/guide/developing/tools/adb.html

+2

注意,「查看輸出和錯誤」部分已經轉移到http://developer.android.com/tools/debugging/debugging-log.html –

+0

注也是上的「查看輸出和錯誤」的評論說,這是Dalvik虛擬機是如何工作的,而事實上,如果你嘗試這種新技術將報告'無法識別的選項-Xlog-stdio'。 – MSalters

+0

這是[Android的問題165602](https://code.google.com/p/android/issues/detail?id=165602) – MSalters