Cara Melacak Error Crash / Exception NullPointer di Android Studio
Ditulis pada: Februari 26, 2018
Artikel ini membahas bagaimana cara melacak error crash di Android Studio. Apa itu crash? Hampir semua programmer android saya kira pernah mengalami hal ini.
Gambar berikut ini adalah contoh crash / aplikasi berhenti tiba2.
Pada gambar diatas Test NullPointer” adalah nama aplikasi android, dan dialog kecil tersebut menginformasikan kalau aplikasi “Tes NullPointer” telah berhenti tiba2.
Mengapa crash seperti ini bisa terjadi? karena telah terjadi exception ketika aplikasi sedang berjalan. Exception adalah error yang fatal yang menyebabkan aplikasi berhenti tiba2. Error yang fatal ini terjadi karena ada kesalahan pada penulisan kodingan di aplikasi. Dan kesalahan penulisan kodingan ini ada banyak sekali macamnya.
Rival akan membahas salah satu kesalahan penulisan kodingan yang akan menyebabkan NullPointerException, yaitu exception yang biasanya terjadi karena ada variabel yang tidak diberi nilai awal (dinisialisasi), tapi sudah dipakai.
Untuk menimbulkan NullPointerException, ikuti dulu langkah2 ini.
Langkah 1. Buat project baru di Android Studio
Langkah 2. Masukkan:
Tes NullPointer di “Application name”,
pintar-android.com di “Company domain”,
dan pilih lokasi sembarang di “Project location”.
lalu tekan tombol “Next” warna biru di bawah.
Langkah 3. Di layar berikutnya, cukup tekan tombol “Next” ajah
Langkah 4. klik “Empty Activity” seperti di gambar berikut ini, lalu klik tombol “Next”.
Langkah 5. Di layar berikutnya, pilih tombol “Finish”.
Langkah 6. Tunggu sampai loadingnya selesai.
Langkah 7. Klik tab activity_main.xml. ini adalah file yang mengatur tampilan aplikasi. Kemudian klik tab “Text” di bawah, untuk melihat kodingan activity_main.xml.
Langkah 8.
Tambahkan 1 baris sesuai gambar di atas:
android:id="@+id/txtHelloWorld"
property id dari komponen TextView. Kita menambahkan id ini supaya bisa diakses dari file MainActivity.java nantinya.
Langkah 9.
Klik tab MainActivity.java, lalu tambahkan beberapa baris sesuai gambar di atas:
import android.widget.TextView; //untuk mengimpor komponen TextView
TextView txtHelloWorld; //untuk membuat variabel txtHelloWorld
//fungsi ini menampilkan teks menggunakan variabel txtHelloWorld
private void setTeks() {
txtHelloWorld.setText("Contoh NullPointerException");
}
setTeks(); //untuk menjalankan fungsi setTeks()
Langkah 10. Klik tombol segitiga hijau di bagian atas seperti pada gambar, untuk menjalankan project
Langkah 11. Ketika muncul kotak dialog seperti gambar berikut ini, pilih salah satu emulator. Lalu klik tombol “OK” warna biru di bawah. Jika belum punya emulator, buat emulator lebih dulu dengan mengklik tombol “Create New Virtual Device” seperti pada gambar.
Cara mengetahui Crash ketika Problem Aplikasinya
Nah! kita sudah membuat sebuah aplikasi yang crash / berhenti tiba2. Sekarang saya akan jelaskan, bagaimana cara melacak crash seperti ini. Mari kita kembali ke Android Studio, lalu klik di “Android Monitor” seperti di gambar.
Hasilnya akan tampil kotak yang berisi catatan semua proses ketika aplikasi kita sedang berjalan. Atau biasa disebut logcat. biasanya kotaknya kurang lebar. coba tarik ke atas biar lebih lebar. caranya ada di gambar berikut ini.
Pastikan di bagian kanan, tulisannya “Show only selected application”. Lalu scrollnya yang di kanan mentok ke atas.
kemudian kita cari penyebab errornya. caranya cari kata2 “Caused by” berwarna merah. kalau di gambar di atas, ada baris tulisannya: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSequence)’ on a null object reference . Ini artinya kita telah salah, memanggil fungsi setText pada variabel yang bernilai null (belum diinisialisasi).
Kemudian untuk mencari di kodingan, di baris mana errornya berasal, kita cari tulisan pertama yang berwarna biru muda. seperti gambar di bawah ini.
Tulisannya adalah: MainActivity.java:20. Artinya, errornya ada di file “MainActivity.java”, baris ke-20. Klik tulisan tersebut untuk melihat, ada apa di MainActivity.java baris ke-20.
errornya terjadi ketika kita mengeset tulisan pada variabel txtHelloWorld. Kenapa ini bisa menimbulkan crash?
Kalau kita perhatikan dengan seksama, kita memang sudah membuat variabel txtHelloWorld di baris ke-9. tapi kita belum menginisialisasi (memberi nilai ke variabel tersebut). Bagaimana caranya kita menginisialisasi variabel txtHelloWorld?
Kita bisa menuliskan 1 baris lagi setelah baris setContentView(R.layout.activity_main);
Tuliskan seperti gambar di atas, baris ke-16:
txtHelloWorld = (TextView) findViewById(R.id.txtHelloWorld);
Baris ini artinya kita menginisialisasi (memberi nilai) variabel txtHelloWorld dengan menghubungkannya ke komponen txtHelloWorld di file activity_main.xml.
Setelah itu, kita jalankan lagi projectnya dengan menekan tombol segitiga hijau di Android Studio. Hasilnya aplikasi kita sudah tidak error lagi. Seperti ini.
Yang baru saya jelaskan adalah cara melacak dan membetulkan salah satu dari banyak sekali penyebab crash di aplikasi Android. Penyebab utama NullPointerException adalah penggunaan variabel yang belum dinisialisasi / diberi nilai awal, seperti txtHelloWorld di artikel ini.
Semoga artikel ini berguna. Silahkan di share yah