Cara Melacak Crash / Exception di Android Studio

Artikel ini membahas cara melacak crash di Android Studio. Apa itu crash? Hampir semua programmer android saya kira pernah mengalami crash.

Gambar berikut ini adalah contoh crash / aplikasi berhenti tiba2.

Pada gambar tersebut “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.

Di artikel ini kita 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”

Langkah 4. klik “Empty Activity” seperti di gambar berikut ini, lalu klik tombol “Next”.

Langkah 5. Di layar berikutnya, klik 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"

Ini adalah 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. Tutorial lengkap untuk membuat emulator bisa dilihat di https://goo.gl/wRgD5T.

Langkah 12. Tunggu sampai di dalam emulator keluar pesan seperti berikut ini.

Cara mengatasi crash

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.

Setelah itu, kita lihat mulai dari baris pertama yang berwarna merah.

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.

Ternyata 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 tinggalkan komentar di bawah ini jika ada yang kurang jelas.

 

Tautan ke cara mengatasi crash: cara mengatasi crash

 

Tersedia buku-buku untuk belajar pemrograman Android.

buku pertama, menginstall Android Studio: https://play.google.com/store/books/details?id=EOufCwAAQBAJ

buku kedua, membuat recyclerview yang menampilkan gambar2 dari internet menggunakan json: https://play.google.com/store/books/details?id=b-boDAAAQBAJ

buku registrasi user, membuat fitur login & register: https://play.google.com/store/books/details?id=FHMqDwAAQBAJ

kalau sudah beli, bisa dilihat di hape pake app google books, bisa dilihat di browser (misal chrome) di books.google.com -> My Library .

bayarnya bs pake pulsa

Leave a Reply

Your email address will not be published. Required fields are marked *