java.lang.NullPointerException
at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:142)
at android.app.AlertDialog$Builder.<init>(AlertDialog.java:359)
at com.radzik.devadmin.MainActivity$5.onClick(MainActivity.java:140)
第 140 行:AlertDialog.Builder b = new AlertDialog.Builder(ctx);
ctx 為 null 或非 Activity 型別的 Context(如 ApplicationContext)。AlertDialog 需要具備視窗權杖的 Activity Context 才能正確解析主題。
// 在 Activity 內部
AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
// 或在 Fragment 內部
AlertDialog.Builder b = new AlertDialog.Builder(requireActivity());
// 或持有 WeakReference<Activity> 並檢查非 null
if (activityRef.get() != null) {
new AlertDialog.Builder(activityRef.get())...show();
}
BroadcastReceiver.onReceive() 直接用傳入的 context 建立 Dialog(需啟動新 Activity 或用 TYPE_SYSTEM_ALERT 視窗)。getApplicationContext() 建立 Dialog。runOnUiThread)。