Rumah > Java > javaTutorial > Mengapa Apl Android Saya Ranap dengan 'Percubaan untuk Menggunakan Kaedah Maya '...' pada Rujukan Objek Null' Apabila Menavigasi Antara Aktiviti?

Mengapa Apl Android Saya Ranap dengan 'Percubaan untuk Menggunakan Kaedah Maya '...' pada Rujukan Objek Null' Apabila Menavigasi Antara Aktiviti?

Patricia Arquette
Lepaskan: 2024-12-11 17:48:17
asal
619 orang telah melayarinya

Why Does My Android App Crash with

Memahami Ralat: "Percubaan untuk Mendapat Kaedah Maya '...' pada Rujukan Objek Null"

Apabila cuba menavigasi dari SplashActivity ke LoginActivity, aplikasi ranap dengan perkara berikut ralat:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
Salin selepas log masuk

Punca Masalah:

Ralat menunjukkan bahawa rujukan kepada objek Java mengembalikan null, menghalang pelaksanaan operasi yang memerlukan objek yang sah. Dalam kes ini, ia berkaitan dengan pemulaan elemen paparan dalam kod LoginActivity.java.

Penyelesaian:

Penyelesaian terletak pada permulaan elemen paparan dengan betul sebelum merujuk mereka dalam kod. Jawapan yang diberikan dengan betul mengenal pasti bahawa memulakan elemen paparan di luar onCreate() boleh membawa kepada rujukan nol.

Untuk menyelesaikan isu ini, isytiharkan medan paparan dalam LoginActivity.java tanpa pengamulaan, sebagai berikut:

private EditText usernameField, passwordField;
private TextView error;
private ProgressBar progress;
Salin selepas log masuk

Kemudian, tetapkan nilai pada medan dalam onCreate() kaedah:

@Override
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);
}
Salin selepas log masuk

Pengoptimuman Tambahan:

Seperti yang dicadangkan dalam jawapan, menggunakan Handler dan bukannya Pemasa untuk menjadualkan peralihan daripada SplashActivity kepada LoginActivity ialah amalan terbaik yang disyorkan, kerana ia memastikan pelaksanaan pada urutan UI, mengelakkan isu yang berpotensi dan memastikan pengalaman pengguna yang lebih lancar.

Atas ialah kandungan terperinci Mengapa Apl Android Saya Ranap dengan 'Percubaan untuk Menggunakan Kaedah Maya '...' pada Rujukan Objek Null' Apabila Menavigasi Antara Aktiviti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan