首頁 >Java >java教程 >為什麼我的 Android 應用程式在轉換活動時會崩潰並顯示'嘗試在空物件參考上呼叫虛擬方法...”?

為什麼我的 Android 應用程式在轉換活動時會崩潰並顯示'嘗試在空物件參考上呼叫虛擬方法...”?

Linda Hamilton
Linda Hamilton原創
2024-12-05 15:22:10882瀏覽

Why Does My Android App Crash with

嘗試呼叫虛擬方法:空白物件參考

問題:

從🎜>問題:

說明:

發生異常是因為LoginActivity 在活動完全初始化並完全初始化並完全初始化並且準備好之前嘗試存取視圖(例如,EditText、TextView)。在 LoginActivity 的建構子中呼叫了 findViewById(),但在 onCreate() 中未明確呼叫 setContentView(...)。

解決方案:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    usernameField = (EditText) findViewById(R.id.username);
    passwordField = (EditText) findViewById(R.id.password);
    error = (TextView) findViewById(R.id.error);
    progress = (ProgressBar) findViewById(R.id.progress);
}
要解決此問題,之後在onCreate() 中初始化視圖字段setContentView(...):

最佳化建議:

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
        startActivity(intent);
        finish();
    }
}, 1500);
考慮使用Handler而不是 Timer 來安排意圖轉換。 Timer 在後台執行緒上執行 TimerTask,在這種情況下應該避免這種情況。 Handler 將確保任務在 UI 執行緒上執行。

以上是為什麼我的 Android 應用程式在轉換活動時會崩潰並顯示'嘗試在空物件參考上呼叫虛擬方法...”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn