| 原因 | 現象 | 解決 |
|---|---|---|
| 標籤過濾 | Logcat 設置了 tag 過濾,當前 tag 未顯示 | 清除過濾器或輸入正確 tag |
| 日志級別 | Logcat 級別設置為 Warning/Error,Debug 被隱藏 | 選擇 Verbose 或 Debug 級別 |
| 緩衝區太小 | 日志產生太快,舊日志被覆蓋 | 設置 adb logcat -G 16M 增大緩衝區 |
| 進程未選中 | Logcat 顯示其他進程日志 | 下拉選單選擇正確包名進程 |
| 代碼未執行 | 斷點/邏輯導致 Log.d 不走 | 打斷點/添加 Toast 驗證執行路徑 |
| ProGuard 混淆 | 發布包移除 Log 調用 | 配置 -assumenosideeffects class android.util.Log { *; } 僅釋構建 |
public class MyActivity extends AppCompatActivity {
private static final String TAG = "MyActivity"; // 類名作為 TAG
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate 執行了"); // 使用固定 TAG
}
}
MyActivity 只看該 TAGcom.your.package (應用進程)
# 查看指定包名的所有日志
adb logcat -s MyActivity:D *:S
# 增大緩衝區到 16MB
adb logcat -G 16M
# 保存到文件分析
adb logcat -d > logcat.txt
// 臨時測試用
System.out.println("=== DEBUG: onCreate executed ==="); // 控制台直接輸出
Log.i(TAG, "INFO 級別測試"); // Info 級別更難被過濾
Log.wtf(TAG, "ASSERT 級別,必定顯示"); // 最高級別
// Android Studio: Run/Debug Configurations → Miscellaneous →
// 勾選 "Show logcat automatically"
// Logcat 窗口 → 右側齒輪 → "Edit filter configuration" →
// 新建過濾器:Tag = "MyActivity", Log Level = Verbose
adb logcat 命令行,比 IDE 穩定Log.d(TAG, msg)adb logcat -s TAG:D *:S 命令行驗證