遇到 Unfortunately, App has stopped,Logcat 顯示 java.lang.NullPointerException at MainActivity.onCreate(MainActivity.java:29),這是最典型的空指針異常。關鍵在於第 29 行嘗試存取未初始化的物件。
MainActivity.java 跳至第 29 行。findViewById 回傳 null 卻直接呼叫方法、Intent.getExtras() 為 null 卻取值、未初始化的陣列/集合操作。if (obj != null) 或 Objects.requireNonNull() 防護。// 錯誤寫法:若 R.id.textView 不存在於佈局,findViewById 回傳 null
TextView tv = findViewById(R.id.textView);
tv.setText("Hello"); // 第 29 行拋出 NPE
// 正確寫法
TextView tv = findViewById(R.id.textView);
if (tv != null) {
tv.setText("Hello");
} else {
Log.e("MainActivity", "textView not found in layout");
}
StrictMode 捕獲主執行緒違規。Crashlytics 或 Firebase Crashlytics 自動收集堆疊追蹤。記住:NullPointerException 總是指向「誰為 null」,順著堆疊追蹤往上找第一行專案程式碼即是突破口。