Cara Melacak Crash / Exception di Android Studio 3.0.1

Artikel ini membahas cara melacak crash di Android Studio 3.0.1. Untuk yang masih memakai Android Studio 2.3.3, bisa membaca versi lama dari artikel ini di http://pintar-android.com/wordpress/2017/07/cara-melacak-crash-exception-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. Di artikel ini kita akan memakai Android Studio 3.0.1.

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. Pilih "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
txtHelloWorld.setText("Contoh NullPointerException"); //pakai variabel txtHelloWorld untuk menampilkan teks
Langkah 10. Klik tombol segitiga hijau di bagian atas seperti pada gambar berikut ini, 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 “Logcat” seperti di gambar berikut ini.

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. Juga klik tombol "soft wraps" di kiri, supaya tulisan2nya ditampilkan semua dari kiri ke kanan.

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:16. Artinya, errornya ada di file “MainActivity.java”, baris ke-16. Klik tulisan tersebut untuk melihat, ada apa di MainActivity.java baris ke-16.
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-15:
txtHelloWorld = 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. Like page pintar-android.com di FB untuk mendapatkan artikel2 yang pastinya berguna di dunia pemrograman. 
Tersedia buku-buku untuk belajar pemrograman Android menggunakan Android Studio 3.0.1.

buku kedua, membuat recyclerview yang menampilkan gambar2 dari internet menggunakan json: https://play.google.com/store/books/details?id=b-boDAAAQBAJ . Buku fisik di https://www.tokopedia.com/buku-meidika/koding-android-untuk-pemula-buku-2
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 .
Tersedia juga DVD Android Studio 3.0.1 di tokopedia: 
https://www.tokopedia.com/buku-meidika/dvd-android-studio-3-0-jdk-32-bit-64-bit

Tautan ke cara mengatasi crash: cara mengatasi crash

Komentar

Postingan Populer