{"id":513,"date":"2018-12-15T02:54:42","date_gmt":"2018-12-14T19:54:42","guid":{"rendered":"https:\/\/luckytruedev.com\/learning\/?p=513"},"modified":"2019-10-04T06:03:17","modified_gmt":"2019-10-03T23:03:17","slug":"membaca-error-dengan-logcat-di-android-studio","status":"publish","type":"post","link":"https:\/\/luckytruedev.com\/learning\/membaca-error-dengan-logcat-di-android-studio\/","title":{"rendered":"Membaca Error dengan Logcat di Android Studio"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-14-at-03.11.41-1024x640.jpg\" alt=\"\" class=\"wp-image-514\" srcset=\"https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-14-at-03.11.41.jpg 1024w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-14-at-03.11.41-300x188.jpg 300w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-14-at-03.11.41-768x480.jpg 768w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-14-at-03.11.41-110x69.jpg 110w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-14-at-03.11.41-420x263.jpg 420w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-14-at-03.11.41-688x430.jpg 688w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-14-at-03.11.41-20x13.jpg 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Hello (Contoh Logcat di Android Studio)<\/figcaption><\/figure>\n\n\n\n<p>untuk kali ini gw akan mengutip cara membaca logcat di android studio, logcat ini berguna banget sih buat baca error saat deploy projek android dan mungkin Logcat sangat penting dan kalian harus bisa menguasai ini untuk meminimalisir error pada projek android kalian. Mungkin langsung aja ya.<\/p>\n\n\n<div id=\"lucky-1272728089\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-5605825534849002\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-5605825534849002\" \ndata-ad-slot=\"5317815257\" \ndata-ad-format=\"auto\" data-full-width-responsive=\"true\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Contoh Kasus :<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Kasus 1<\/strong><\/h3>\n\n\n\n<p>Penting bagi developer-developer muda untuk mengenal Logcat sejak dini, karena sudah saya jelaskan diatas bahwa logcat ini akan memberi tahu kita apa yang dilakukan oleh&nbsp;aplikasi kita, antara lain:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Force Closed Error.<\/strong><br>Ini yang beberapa developer muda kebingungan apa yang harus dilakukan apabila terjadi Force closed error.<\/li><li><strong>Integrasi data menggunakan API.<\/strong><br>Library HTTP Client semacam Retrofit, Volley, dsb sudah menyertakan log sendiri atas aktifitas&nbsp;request dan response. Jadi tinggal dibaca aja request, response, beserta data post dan headernya.<\/li><li><strong>Mengecek data yang masuk dan keluar dari aplikasi kita.<\/strong><br>Contoh simpel adalah push notifikasi, apabila teman-teman bekerja menggunakan push notifikasi dan ingin tau data apa saja yang dikirimkan server push notifikasi ke aplikasi kita, mudahnya cek saja ke Logcat. Layanan seperti OneSignal, Pushbots, dll biasanya menyertakan fitur log untuk kemudahan developer dalam menggunakan layanannya.<\/li><\/ol>\n\n\n\n<p>Nah yang ingin saya bahas disini adalah, bagaimana cara membaca error di Logcat. Karena ini penting, karena dengan adanya Force Closed Error aplikasi yang kita buat tidak akan&nbsp;tepat sasaran bahkan bisa menjadi tidak berguna. Lihat sampel dibawah.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/i784.photobucket.com\/albums\/yy122\/rioswarawan\/AndroidManifest_xml_-_Nyus_-____Work_SwarawanLab_YAC_Nyus__zps7sz7uciq.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Hal yang perlu diperhatikan adalah:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Tipe Exception<\/strong><br>Tipe ini biasanya ada dibawah PID. Pada contoh diatas tipenya adalah `<em>ActivityNotFoundException<\/em>`. Activity&nbsp;tidak ditemukan. Tidak ditemukan dimana? Lihat point nomor 2.<\/li><li><strong>Message Exception<\/strong><br>Perhatikan pesan yang diberikan untuk developer, \u201c<em>Unable to find \u2026 :&nbsp;Have you declared this activity in your AndroidManifest?<\/em>\u201d Nah ini sudah sangat jelas,&nbsp;apa yang android inginkan dan apa yang harus kita lakukan.<\/li><li><strong>File yang berpengaruh<\/strong><br>Perhatikan file yang berwarna biru, ini adalah link menuju file tersebut. Pilih yang paling atas untuk dieksekusi. Setelah di klik, cek di baris tersebut yang mana activity yang belum di deklarasikan di&nbsp;<em>AndroidManifest.xml<\/em><\/li><\/ol>\n\n\n\n<p>Contoh diatas adalah contoh simpel yang paling dasar,&nbsp;masih banyak exception-exception yang mungkin akan terjadi. Apapun exceptionnya, intinya adalah 3 hal diatas. Kalo masih belum menemukan jalan keluar, cobalah untuk&nbsp;<em>copy-paste message exception ke Google<\/em>. Semoga forum luar dapat membantu.<\/p>\n\n\n\n<p>Sumber :&nbsp;<a href=\"http:\/\/swarawan.com\/android\/membaca-error-di-log-cat-android\/\" target=\"_blank\" rel=\"noopener\">http:\/\/swarawan.com\/android\/membaca-error-di-log-cat-android\/<\/a><\/p>\n\n\n<div id=\"lucky-308722174\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-5605825534849002\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-5605825534849002\" \ndata-ad-slot=\"5317815257\" \ndata-ad-format=\"auto\" data-full-width-responsive=\"true\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Kasus 2<\/strong><\/h3>\n\n\n\n<p>Kalau mengecek error di tool DDMS bawaan android SDK\/Tools, perlu diketahui, ketika aplikasi berjalan, log yang nampil itu bukan hanya error, jangan dikira kalau ada pesan di log berarti error.<br>teks warna hijau : seputar tips dan informasi,<br>teks warna biru : bagian yang diselect, biasanya diisi to-do-list oleh developer,<br>teks warna orange : ini sebagai peringatan, bisa jadi potensi masalah (namun saat ini belum jadi masalah)<br>Dan..<br>teks merah : ini error, dan harus dianalisa masalahnya biar tidak menimbulkan gangguan di aplikasi.<\/p>\n\n\n\n<p>Dan ketika nampak teks warna merah di logcat, sebagai contoh :<br><code>02-12 17:50:21.541: E\/com.wd.radiodakwahislam.controller.StreamingMediaPlayer(10294): Error updating to newly loaded content.<br>02-12 17:50:21.541: E\/com.wd.radiodakwahislam.controller.StreamingMediaPlayer(10294): java.lang.NullPointerException<br>02-12 17:50:21.541: E\/com.wd.radiodakwahislam.controller.StreamingMediaPlayer(10294): at com.wd.radiodakwahislam.controller.StreamingMediaPlayer.transferBufferToMediaPlayer(StreamingMediaPlayer.java:285)<\/code><\/p>\n\n\n\n<p>Di atas, terlihat bahwa ada tulisan : \u201c\u2026<code>(StreamingMediaPlayer.java:285)<\/code>\u201d<br>artinya, error tersebut terjadi di&nbsp;baris 285&nbsp;pada&nbsp;<code>class StreamingMediaPlayer.java<\/code>. So, fokuslah ke class tersebut, dan lihat pada baris 285 terdapat kekeliruan atau tidak (lihat dari editor Eclipse-nya).<\/p>\n\n\n\n<p>Nah, kalau bingung, di awal teks merah tersebut di logcat,&nbsp;<em>copy<\/em>&nbsp;teks-nya (dengan pilih teks error-nya di logcat, terus tekan ctrl+c), dan buang tanggal dan nama class-nya sehingga yang ter-<em>copy<\/em>&nbsp;hanya teks error saja :&nbsp;<code>error updating to newly loaded content<\/code>.<br><em>Copy<\/em>&nbsp;dan&nbsp;<em>paste<\/em>&nbsp;ke&nbsp;<em>google search<\/em>&nbsp;di&nbsp;<em>internet browser<\/em>&nbsp;di PC (bila perlu ditambahkan keyword : Android di akhirnya), terus&nbsp;<em>enter<\/em>&nbsp;dan lihat di&nbsp;<em>result google<\/em>, biasanya&nbsp;<em>result<\/em>&nbsp;3 besar berisi link&nbsp;<a href=\"http:\/\/stackoverflow.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">stackoverflow<\/a>, klik salah satunya dan cari apa penyebabnya dari jawaban-jawaban yang ada di stackoverflow.<\/p>\n\n\n\n<p>Rules itu berisi :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Ketika melaporkan&nbsp;<em>bugs<\/em>, harap sertakan&nbsp;<em>device<\/em>&nbsp;apa yang dipakai dan versi OS android-nya.<\/li><li>Bila terdapat bugs\/masalah UI tolong sertakan screenshotnya, bila masalah fungsional tolong sertakan logcatnya (dengan mengunduh tools berikut) \/** saya sertakan link download zipnya yang berisi tool DDMS dan Android SDK beserta doc singkat cara pakainya **\/<\/li><li>Sebaikny pakai filtering ketika menjalankan logcat di DDMS, jangan semua proses dicantumkan di logcat, demi memudahkan menelusuri masalahnya<\/li><li>DDMS bisa&nbsp;<em>filter<\/em>&nbsp;logcat aplikasi saja, jadi tidak semua&nbsp;<em>log<\/em>&nbsp;dari proses di&nbsp;<em>device<\/em>tercatat, caranya dengan masukan nama&nbsp;<em>project<\/em>&nbsp;di bagian kolom&nbsp;<em>filter<\/em>. Nama&nbsp;<em>project<\/em>&nbsp;sesuai yang saya cantumkan ketika saya&nbsp;<em>upload progress<\/em>&nbsp;(nama&nbsp;<em>project<\/em>dapat dilihat di file&nbsp;manifest.xml)<\/li><li>Kenapa penting bagi&nbsp;<em>developer<\/em>&nbsp;untuk tahu itu? Supaya gampang mengetahui errornya<br>Jangan dikira ketika aplikasi jalan di device developer maka digeneralisir kalau aplikasi tersebut jalan di device SEMUA users. Bahkan yang terjadi di kantor tempat saya kerja, error itu justru sangat kemungkinan besar terjadi mengingat para teman-teman memakai&nbsp;<em>device Android<\/em>&nbsp;berbagai merek dan ukuran layar dan versi OS.<br>Makanya ada conditional yang diterapkan dicode : IF(SDK version &lt; 10) pake codingan A, IF(SDK version &gt; 14) pake codingan B, dll.<\/li><li>Oleh karena itu, penting adanya&nbsp;<em>public testing<\/em>&nbsp;sebelum melepas ke&nbsp;<a href=\"https:\/\/play.google.com\/apps\/publish\/signup\/\" target=\"_blank\" rel=\"noreferrer noopener\">GooglePlay<\/a>.<br>Dan media yang bagus untuk melakukan<em>&nbsp;public testing<\/em>&nbsp;gratis ya jejaring sosial facebook dll.<\/li><li>Beda ukuran layar beda lagi UInya, makanya ketika saya bekerjasama dengan designer UI ada beberapa rules yang harus dipatuhi bersama agar bisa diterapkan di layout dan mencakup ukuran layar low, mid, high, (ponsel dr ukuran kecil sampe besar) extra (tablet 7\u2033 atau HD) dan double extra (tablet 10\u2033 atau yg full HD). Untuk guidelines buat para designer UI Android, bisa patuhi prinsip-prinsip designnya di&nbsp;<a href=\"http:\/\/developer.android.com\/design\/get-started\/principles.html\" target=\"_blank\" rel=\"noreferrer noopener\">sini<\/a>&nbsp;dan lengkapnya ada di&nbsp;<a href=\"https:\/\/developer.android.com\/design\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">sini&nbsp;<\/a>untuk setiap bagian&nbsp;<em>design<\/em>-nya.<\/li><\/ul>\n\n\n\n<p>Sumber :&nbsp;<a href=\"https:\/\/butterflydroid.wordpress.com\/2014\/02\/13\/seni-membaca-error-log-di-logcat-ddms-android\/\" target=\"_blank\" rel=\"noopener\">https:\/\/butterflydroid.wordpress.com\/2014\/02\/13\/seni-membaca-error-log-di-logcat-ddms-android\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Referensi<\/h2>\n\n\n\n<p>mungkin kayaknya kalian harus buka situs ini biar lebih jelas lagi&nbsp;<a href=\"https:\/\/developer.android.com\/studio\/debug\/am-logcat?hl=id\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.android.com\/studio\/debug\/am-logcat?hl=id<\/a><br><br>pada situs itu dijelasin lengkap tentang debug &amp; membaca logcat. mungkin itu aja sih dari gw, makasih \ud83d\ude42<\/p>\n<div id=\"lucky-242506819\" class=\"lucky-after-content lucky-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-5605825534849002\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-5605825534849002\" \ndata-ad-slot=\"5317815257\" \ndata-ad-format=\"auto\" data-full-width-responsive=\"true\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>untuk kali ini gw akan mengutip cara membaca logcat di android studio, logcat ini berguna banget sih buat baca error saat deploy projek android dan mungkin Logcat sangat penting dan kalian harus bisa menguasai ini untuk meminimalisir error pada projek android kalian. Mungkin langsung aja ya. Contoh Kasus : Kasus 1 Penting bagi developer-developer muda [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":514,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-513","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ltdv-android-tutor"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/posts\/513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/comments?post=513"}],"version-history":[{"count":1,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/posts\/513\/revisions"}],"predecessor-version":[{"id":2335,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/posts\/513\/revisions\/2335"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/media\/514"}],"wp:attachment":[{"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/media?parent=513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/categories?post=513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/tags?post=513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}