Android Studio----- 沒法打印---log----問題總結----華爲坑深(轉)

問題描述:安卓真機調試時 System.out.println 沒法輸出, err則能夠;Log.e,w能夠,但其餘不行。

解決方法,按以下方式查看酷派手機默認設置日誌未warn方式。android

酷派手機: *20121220#   進入安卓的通用工程模式,再按下文的日誌設置方式修改手機的日誌默認方式

 

摘要(Abstract)

必備技能,使用日誌工具 LogCat,並嘗試解決真機調試沒有日誌的問題。正則表達式

日誌工具(LogCat)

日誌在任何項目的開發過程當中都會起到很是重要的做用,在 Android 項目中若是你想要查看日誌則必需要使用 LogCat 工具。app

在 Android Studio 最下方的 Status Bar 中找到 6:Android,點擊她。以下圖ide

6:Android

LogCat 出現了,以下圖工具

LogCat

  1. 這裏選擇 Devices,固然通常來講不須要選擇,若是隻鏈接了一個設備的話。
  2. 這裏選擇 Log level,日誌級別。包括:Verbose、Debug、Info、Warn、Error、Assert。以上級別依次升高。
  3. 這裏選擇過濾器,默認會自動生成一個過濾條件是 Package name 是項目包名的過濾器。

使用 LogCat

Android 中的日誌工具類是 Log(android.util.Log),提供了以下的幾個方法供咱們打印日誌。測試

  1. Log.v() 對應 Verbose
  2. Log.d() 對應 Debug
  3. Log.i() 對應 Info
  4. Log.w() 對應 Warn
  5. Log.e() 對應 Error
  6. Log.wtf() 在輸出日誌的同時,會把此處代碼此時的執行路徑(調用棧)打印出來。

介紹完畢,咱們來演戲一下吧。打開 HelloWorldActivity,在 onCreat()方法中添加一行打印日誌的語句,爲了讓日誌明顯一點我加了一些下劃線,以下所示:spa

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hello_world); Log.d("HelloWorldActivity","______________onCreate execute______________"); }

Log.d() 方法中傳入了兩個參數,第一個參數是 tag,通常傳入當前的類名就好,主要用於對打印信息進行過濾。第二個參數是 msg,即想要打印的具體內容。.net

如今從新運行一下項目,點擊工具欄中的綠色小箭頭,或者按 Shift+F10。等程序運行完畢,使用模擬器的戰友可能已經能看到日誌了,以下圖調試

log

使用真機的戰友,可能看到的仍是空蕩蕩的LogCat。須要作這麼一件事,菜單欄 Tools → Android → Enable ADB Integration 把這個勾上,而後再次運行。日誌

此次應該能看到日誌了吧?看看能不能找到咱們想要打印出來日誌信息。過濾器中必定要選中 app:com.xxxx.helloworld 哦。若是有日誌,可是找不到咱們想要打印的日誌 HelloWorldActivity: ______________onCreate execute______________,那麼恭喜你,你用的真機貌似跟個人同樣比較高端,是否是有什麼黑科技。

咱們來嘗試解決這個問題。

  1. 手機的開發人員選項打開了麼,其中的 USB 調試打開了麼?搞定他們並從新運行,是否能找到咱們的日誌?否,轉到 2。
  2. 日誌中是否有這樣 could not disable core file generation for pid 3963: Operation not permitted 的信息麼? 是,轉到 3;否,那我也不知道怎麼搞,或者你能夠把日誌貼到評論中我看看。
  3. 是華爲手機麼?是,轉到 4;否,你能夠參考 4 本身 Google Baidu 一下。
  4. 在撥號界面輸入:*#*#2846579#*#* 進入測試菜單界面,而後
    Project Menu → 後臺設置 → LOG設置
    LOG 開關 → LOG 打開        LOG 級別設置 → VERBOSE
    Dump&Log → 所有選中
    重啓手機,重啓 Android Studio。
    PS:根據系統版本的不一樣,可能會有些許差別。

重啓完畢,打開 Android Studio,運行項目,這下應該能找到咱們的日誌了。若是還沒找到,對不起洗洗睡吧,我只能幫到這兒了。(或者你能夠換個手機)

定製過濾器(Filter)

點擊過濾器那個下拉框,選擇 Edit Filter Configuration,在彈出的對話框中點擊左上角的加號新建立一個 Filter。以下圖

filter

含義以下:

  • Name:Filter 名稱
  • by Log Tag: 經過日誌的 tag 過濾
  • by Log Message:經過日誌的 msg 內容過濾
  • by Package Name:經過包名過濾
  • by PID:經過PID過濾
  • by Log Level:經過日誌等級過濾
  • regex:表示可使用正則表達式進行匹配

以上過濾條件能夠組合。

我建了一個data的過濾器,過濾條件是 tag 等於 data。將 Filter 選擇爲 data,咱們的日誌不見了,由於匹配不到 tag 等於 data 的日誌。

如今去把咱們在 onCreate() 方法中的日誌的 tag 改成 data。以下所示:

Log.d("data","______________onCreate execute______________");

而後從新運行,將 Filter 選擇爲 data,咱們的日誌出現了。固然還可能會有一些奇奇怪怪的日誌也出現了,仔細看看 tag 中都包含有 data。

抑制不住的好奇心

看看這個 Android Studio 最下方的 Status Bar,咱們找到 LogCat 的地方,以下圖

6:Android

難道大家很差奇爲何 Android 前面有個 6 麼?難道是由於用了 LogCat 你的 Android 開發水平就會 666666666?

無論發生什麼事件,我相信真相只有一個,以下圖:

6:Android

OK,收工了。

http://blog.csdn.net/copy_yuan/article/details/51460718

相關文章
相關標籤/搜索