Last Updated on 12 years by Mas Herdi
Kebetulan banyak sekali yang tanya ke saya tentang masalah force close pada aplikasi Android, Dan karena penyebab force close itu macam-macam, saya pun bingung harus menjawab bagaimana. 😀 Mungkin itulah kenapa kali ini saya akan membahas tentang troubleshooting atau penanganan error apabila terjadi force close pada aplikasi Android buatan kalian.
Force close biasa ditandai dengan aplikasi yang tiba-tiba berhenti atau nge-hang pada saat dijalankan. Dan kemudian ditandai dengan munculnya alert dialog yang berbunyi “The application has stopped unexpectedly. Please try again”. Walaupun di alert dialognya kita disuruh untuk try again, atau coba lagi. Tapi tentu saja itu tidak menangani masalah. Apabila masalah aslinya tidak diperbaiki, aplikasi akan tetap mengalami force close. 🙂
Force close Android termasuk ke dalam jenis runtime error, yaitu error atau kerusakan yang baru muncul apabila aplikasi dijalankan, karena itu dinamakan runtime. Kesalahan ini biasanya tidak terdeteksi kalau aplikasi tidak dijalankan, karena tidak ada marker error pada IDE. Namun saat aplikasi Android itu dijalankan, langsung deh tiba-tiba terjadi force close.
Runtime error sebagai penyebab force close sendiri bermacam-macam jenisnya, namun berikut ini adalah beberapa runtime error yang kerap kali terjadi :
- NullPointerException error ini biasanya terjadi karena variabel yang masih kosong/belum diinisialisasi namun sudah digunakan. Saking terkenalnya, jenis error ini yang paling eksis di Twitter 😀
- ArrayIndexOutOfBoundsException terjadi apabila array kita kepenuhan muatan. Seperti contohnya kita punya array 3 elemen, tapi diisi hingga 4 elemen. Error ini juga biasa disebut dengan ArrayIndexOutOfRange exception.
- OutOfMemoryError yang ini disebabkan karena kita memasukkan nilai di luar jangkauan tipe variabel. Misalnya kita memasukkan nilai 100.000 ke dalam sebuah variabel int (integer) yang jangkauan maksimalnya hanya sekitar 30.000-an.
- lainnya seperi NumberFormatException, ArithmeticException, StackOverflow, dan sebagainya.
Cara Menangani Aplikasi yang Force Close
Sekarang kita masuk ke cara menanganinya. Untuk masalah ini tools yang kalian butuhkan adalah LogCat. Udahlah LogCat itu tools paling powerful ketika kita ingin mengecek error apa saja yang terjadi pada aplikasi Android. Kalian nggak perlu belajar debugging, asal bisa baca LogCat saja, itu sudah lebih dari cukup. 😀
Contohnya seperti gambar di atas, kita sedang asyik-asyik ngetest aplikasi kita tiba-tiba muncul dialog seperti di atas. Ngeselin nggak? hehe Kalo kalian tau cara mengatasinya, itu justru menjadi sebuah tantangan.
Jika kalian menemui masalah force close seperti di atas, langsung buka LogCat pada Eclipse. Untuk memunculkan Logcat caranya, klik Window > Show View > Other. Kemudian pilih Android > Logcat. Kalau LogCat sudah muncul cari tulisan berwarna merah seperti gambar di bawah ini.
Nah, sekarang kita latihan belajar baca Logcat. Kalau pada gambar di atas ada tiga kolom. Kolom pertama adalah nama package yang menyebabkan error, sedangkan kolom kedua adalah jenis error. Di situ tertulis Android Runtime, seperti yang saya jelaskan di atas, error yang hanya muncul pada saat aplikasi di-run. Kolom ketiga adalah penjelasan detail tentang errornya.
Di sini kalian mula-mula ke baris pertama/baris paling atas. Biasanya tulisannya FATAL EXCEPTION. Kalau sudah ketemu, coba lihat baris berikutnya (yang saya beri kotak biru), itu adalah jenis dari error, kebetulan ini jenis error-nya adalah NullPointerException. Setelah itu di baris selanjutnya, biasanya nggak sampe lima baris adalah baris kode aplikasi kalian yang menyebabkan error, saya beri tanda kotak hijau. Untuk membedakan mana kode buatan kalian dan mana yang bukan, bisa dilihat dari nama package-nya.
Baris-baris selanjutnya, itu adalah kode-kode dari OS Android yang menyebabkan error. Dan tidak begitu penting (saya beri kotak abu-abu) karena kita nggak bisa merubah kode-kode yang ada di situ. Yang penting adalah kalian segera memperbaiki kode penyebab error dari aplikasi kalian, yang ada di kotak hijau.
Cuma itu yang perlu kalian lakukan! Cara memperbaikinya tergantung dari jenis error yang kalian alami. Apabila kalian punya cara-cara lain untuk mengatasi error force close, silahkan tinggalkan komentar. Good luck! 😉
terima kasih gan atas postingannya. membantu 😀
Jelas banget penjelannya, tapi bingung di kata-kata
“Baris-baris selanjutnya, itu adalah kode-kode dari OS Android yang menyebabkan error. Dan tidak begitu penting (saya beri kotak abu-abu) karena kita nggak bisa merubah kode-kode yang ada di situ. Yang penting adalah kalian segera memperbaiki kode penyebab error dari aplikasi kalian, yang ada di kotak hijau.”
Memperbaikis sesuai jenis errornya? Maksudnya gimana ya? Trims…
Yups, karena jenis error di Android kan macam2. Ada NullPointerException, OutOfMemoryError dan sebagainya 🙂
kalau errornya OutOfMemoryError kenapa ya kak? mohon bantuannya
berarti memory RAM di hp nya habis sist… coba close beberapa aplikasi atau clear memory cache
thanks berfungsi sedikit tapi kadang kadang keluar
gan kalo SpannableStringBuilder itu apa? saya coba di level eror, kalo di fatal nya kosong ga ada merah
Hmm… itu nama komponennya yang mengalami error gan. Bukan nama error-nya 🙂 Check again
Klo error nya java.lang.RuntimeException
itu mksudnya apa yaa?
mohon bantuan yaa
Trima kasih
Berarti error itu terjadi saat programnya dijalankan
Kalo errornya justru didevice mas, di emulator aplikasinya lancar ndak masalah, setelah diinstal di device 2 3 kali pencet tombol force close deh, mohon pencerahannya, trims.
coba di-trace di Logcat penyebab error-nya apa
hp galyoungku udah aq upgrade ke jelly bean,, masalahx kadang2 muncul tulisan “status bar force close”,, gmna solusix??
itu ROM official jelly bean bukan? kalau bukan biasanya memang sering error
kalo errornya NullPointerException itu kenapa pak? harus diapakan?
dicari dan diperbaiki kode yang nyebabin NullPointerException. Biasanya karena program mengakses variable kosong
Pak, terima kasih banget buat post-nya…
Kalo browse di Internet, rata-rata bahasa Inggris jadi sulit haha
Ini pak, kopian log-nya yang error. Semoga bapak bisa bantu menemukan maksud dan solusinya. (Saya awam bahasa pemrograman)
02-03 13:33:55.086: E/AndroidRuntime(1131): FATAL EXCEPTION: main
02-03 13:33:55.086: E/AndroidRuntime(1131): java.lang.ExceptionInInitializerError
02-03 13:33:55.086: E/AndroidRuntime(1131): at b.a.d.a.onStart(Unknown Source)
terima kasih banyak pak, udah bikin post begini…
kalo browse di i-net, rata-rata bahasa inggris…
(udah awam bahasa pemrograman, bahasa inggris pula hehe)
ini pak, berikut log error yg berhasil saya kopi:
02-03 13:33:55.086: E/AndroidRuntime(1131): FATAL EXCEPTION: main
02-03 13:33:55.086: E/AndroidRuntime(1131): java.lang.ExceptionInInitializerError
02-03 13:33:55.086: E/AndroidRuntime(1131): at b.a.d.a.onStart(Unknown Source)
semoga bapak bisa membantu, terima kasih 🙂
Gan, kalo cara memgatasi eror yg out of memory itu gimana? Trims
tambah memori gan 🙂
Failed to initialize Monitor Thread: Unable to establish loopback connection
solusinya gimana ya ??
java.lang.ExceptionInInitializerError
Solusinya gmna mas ? 😀
tergantung kasusnya gan
Kalo errornya kayak gini gan tapi pesan ini muncul di bagian console saat pas nge run project
– Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
– Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
Coba clean dan build aplikasinya
Mas, salam kenal
Mas saat ini aq pakai Alcatel Onetouch D662, masalahnya adalah sering force close loop pada beberapa aplikasi yang gak bisa di close, soale menu nya gak jalan.
sudah saya boot ke recovery dan reset ke factory setting , tapi masalahnya gak berubah.
Awal permasalahan ada beberapa aplikasi system yg dipindah ke SD Card dan jalan, tapi beberapa hari kemudian SD Card nya rusak ,gak bisa dibaca, Nah, mulai dari situ permasalahan mulai muncul yi kalo di Boot selalu force close loop .
dibawah ini log error yg saya dapat dari command adb logcat, Mohon pencerahannya utk solusi masalah aq ini.
Terimakasih atas bantuan dan atensinya.
Oh Ya Mas, sayangnya Stock ROM original gak disediakan oleh Pabrikan utk model ini, dan saya awam banget CWM mana yang bisa saya download yg nge-Match dg ponsel saya ini.
Rizal
Error Logcat dari ADB cmd :
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:>adb devices
List of devices attached
1234567890ABCDEF device
C:>adb logcat
——— beginning of /dev/log/system
I/Fatimgcheck( 79): check fat.img pass.
——— beginning of /dev/log/main
E/ ( 84): uptime enter main = 3
D/msm7k.gralloc( 84): splash screen display
V/msm7k.gralloc( 84): num supported framebuffers in kernel = 3
E/msm7k.gralloc( 84): We support 3 buffers
I/msm7k.gralloc( 84): using (fd=10)
I/msm7k.gralloc( 84): id = msmfb30_90201
I/msm7k.gralloc( 84): xres = 480 px
I/msm7k.gralloc( 84): yres = 800 px
I/msm7k.gralloc( 84): xres_virtual = 480 px
I/msm7k.gralloc( 84): yres_virtual = 2400 px
I/msm7k.gralloc( 84): bpp = 32
I/msm7k.gralloc( 84): r = 24:8
I/msm7k.gralloc( 84): g = 16:8
I/msm7k.gralloc( 84): b = 8:8
I/msm7k.gralloc( 84): width = 52 mm (234.461533 dpi)
I/msm7k.gralloc( 84): height = 86 mm (236.279068 dpi)
I/msm7k.gralloc( 84): refresh rate = 60.00 Hz
E/msm7k.gralloc( 84): DEBUG_CALC_FPS: 0
E/msm7k.gralloc( 84): period: 10
E/msm7k.gralloc( 84): ignorethresh_us: 500000
E/ ( 84): uptime first frame = 4
Mas , mohon maaf saya ulang comment ini spt nya gak sampai.
Mas, saat ini aq pakai Alcatel Onetouch D662 OS GB 2.3.5. Masalahnya pada saat di boot selalu force close loop pd beberapa aplikasi yg gak bisa ciose, soale Menu nya gak bisa diakses, udah dicoba reset to Fact setting tapi masalah yg sama masih muncul.
kronologis masalah : Awalnya ada beberapa aplikasi system dipindah ke SD Card dan jalan, tapi beberapa hari kemudian SD Card nya Rusak/gak bisa dibaca , nah,..dari sini permasalahan mulai muncul.
Sayangnya STock ROM dari ALcatel tidak disedikan untuk ponsel type ini, dan Aq benar benar gak tahu CWM mana yg pas dengan Ponsel ini.
terlampir data error yang diambil dari ADB Cmd Logcat, mohon pencerahan maksudnya apa dan bagaimana cara penanggulangannya.
terimakasih atas bantuan dan atensinya.
Rizal
Lamp Data Error dari ADB Cmd Logcat :
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:>adb devices
List of devices attached
1234567890ABCDEF device
C:>adb logcat
——— beginning of /dev/log/system
I/Fatimgcheck( 79): check fat.img pass.
——— beginning of /dev/log/main
E/ ( 84): uptime enter main = 3
D/msm7k.gralloc( 84): splash screen display
V/msm7k.gralloc( 84): num supported framebuffers in kernel = 3
E/msm7k.gralloc( 84): We support 3 buffers
I/msm7k.gralloc( 84): using (fd=10)
I/msm7k.gralloc( 84): id = msmfb30_90201
I/msm7k.gralloc( 84): xres = 480 px
I/msm7k.gralloc( 84): yres = 800 px
I/msm7k.gralloc( 84): xres_virtual = 480 px
I/msm7k.gralloc( 84): yres_virtual = 2400 px
I/msm7k.gralloc( 84): bpp = 32
I/msm7k.gralloc( 84): r = 24:8
I/msm7k.gralloc( 84): g = 16:8
I/msm7k.gralloc( 84): b = 8:8
I/msm7k.gralloc( 84): width = 52 mm (234.461533 dpi)
I/msm7k.gralloc( 84): height = 86 mm (236.279068 dpi)
I/msm7k.gralloc( 84): refresh rate = 60.00 Hz
E/msm7k.gralloc( 84): DEBUG_CALC_FPS: 0
E/msm7k.gralloc( 84): period: 10
E/msm7k.gralloc( 84): ignorethresh_us: 500000
E/ ( 84): uptime first frame = 4
mas…saya mau tanya..
saya mencoba aplikasi sederhana dan dicoba dalam AVD dan bisa work…
tapi ketika mencoba menggunakan target HH karena akan menggunakan aplikasi maps v2 saya malah error
di logcat nya antara yaitu :
05-12 12:00:08.912: E/CellLocation(491): create GsmCellLocation
05-12 12:00:08.921: E/CellLocation(491): create GsmCellLocation
05-12 12:00:08.923: E/CellLocation(491): create GsmCellLocation
05-12 12:00:08.924: E/CellLocation(25082): create GsmCellLocation
05-12 12:00:08.926: E/CellLocation(25082): create GsmCellLocation
mohon pencerahannya mas…makasi banyak…
Mas mhn bntuannya ya..kenapa saat saya menjalankan aplikasi flipagram itu bisa.tapi saat mau menyimpan videonya kenapa nggak bisa ya??katanya error java lang.null pointer.exception..itu mksudnya apa ya?kebetulan saya memakai hp advan S5E.
Terima kasih buat info nya..
mkasih mas,, sangat mmbantu… 😀
Klo error nya java.lang.RuntimeException: Unable to start activity Component Info{com.stmikjayanusa/com.stmikjayanusa.depan}: j…
Mohon bantuannya mas, hampir semua applikasi di tablet andro ku force close, kira” apa ya penyebabnya, sbelumnya trima kasih…
Kalo untuk aplikasi tablet yang force close barangkali solusinya bisa dilihat di mari http://www.twoh.co/2014/08/mengatasi-aplikasi-android-yang-sering-berhenti-sendiri-force-close/
Gan mbt tolong dong gan.
Hp gw tb2 muncul tulisan database file has been damaged
Trus disertai kata2 sayangnya aplikasi (termaduk contacts and messages) telah berhenti
Trus solusinya gmn ya gan? Buntu bgt , bhkan udah di cek di laptop sampe virusnya dibersihin masih tetep aja kyk gt gan.
Yolong bantu ane for solusinya y gan. Thank you
mas !
kalo java.lang.RuntimeException : Unable to start activity componentinfo cara ngatasinya gimana ??
Biasanya di Android Manifest lupa ditambah itu deklarasi activity-nya
mas ketika masuk penyimpanan tpi sayang setelan telah berhenti itu bagaimana caranya ??
Gan kalau error logcat nya java.lang,noclassdeffounder kenapa gan itu? Dan tolong share cara mengatasinya. Makasih dan mohon pencerahan nya
Bagus sekali informasinya, trims Mas.
Mas kalo aplikasi yg saya buat kenapa ya tidak bisa berjalan di semua jenis smartphone?
Yup, hampir semua aplikasi Android memang seperti itu gara-gara fragmentasi dan memang ada banyak sekali smartphone yang menggunakan OS Android dengan spesifikasi berbeda-beda. Lebih lengkapnya bisa dibaca di sini http://www.twoh.co/2012/09/8-kelemahan-android-yang-masih-sering-dikeluhkan-pengguna/
Maaf om kl seperti ini fixnya bagaiman ya mksih
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.Settings$ApnSettingsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method ‘android.app.ActionBar$Tab android.app.ActionBar$Tab.setText(java.lang.CharSequence)’ on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2699)
Gan kalau di logcat y
Error
Java.lang.ClassCastException:android.widget.textView cannot be cas t to android.widget.radio group
Iya casting nya harus ke kelas yang sama ya, TextView ke TextView, kalao RadioGroup dicast juga ke RadioGroup
mas kalo seluruh sistem dan aplikasi di android pas di hidupin force close semua gimana benerinnya? mau benerin langsung di hp tersebut udah gabisa soalnya pas mau klik tiba2 langsung force close terus. butuh pencerahan nya mas hehehhee terimakasih
Nah ini biasanya karena kena root baca bahaya root di sini https://www.twoh.co/2013/01/17/ingin-ngeroot-android-pahami-dulu-resiko-dan-kerugiannya/, solusi balikin ke stock ROM gan… di unroot
gak paham, game nya di hape, benerin pake eclipse di laptop ? berarti pake usb ?
Ini artikel khusus Android developer gan, untuk pengguna biasa bisa baca https://www.twoh.co/2013/02/14/mengatasi-force-close-pada-aplikasi-android-menggunakan-logcat/
Kak klo “RUNTIME EXCEPTION”?
kalau runtime exception berarti ada error yang hanya muncul saat aplikasi sedang berjalan
Terimakasih untuk infonya sangat bermanfaat sekali