{"id":95,"date":"2011-01-08T11:24:25","date_gmt":"2011-01-08T19:24:25","guid":{"rendered":"http:\/\/blog.edwinevans.me\/?p=95"},"modified":"2011-01-10T08:55:13","modified_gmt":"2011-01-10T16:55:13","slug":"android-crash-reports-are-awesome","status":"publish","type":"post","link":"http:\/\/blog.edwinevans.me\/?p=95","title":{"rendered":"Android Crash Reports are Awesome"},"content":{"rendered":"<p>In my <a href=\"http:\/\/blog.edwinevans.me\/?p=77\">last post<\/a>, I said I like WP7 platform best for development, but one thing that blew me away about Android development is when Google came out with crash reports. Developers can see stack traces for all the crashes that users report that may direct you to exactly what the problem is.<\/p>\n<p>I released a new version of Bubbles (and <a href=\"http:\/\/www.youtube.com\/watch?v=vR7yMSvmAZY\">Bubbles Deluxe<\/a>) yesterday. This morning I checked in the market console to see if there were any crashes and saw that there was a new error users were seeing:<\/p>\n<p><a href=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/Overview2.png\"><img loading=\"lazy\" src=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/Overview2.png\" alt=\"\" title=\"Overview Android Developer Console\" width=\"825\" height=\"62\" class=\"aligncenter size-full wp-image-119\" srcset=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/Overview2.png 825w, http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/Overview2-300x22.png 300w\" sizes=\"(max-width: 825px) 100vw, 825px\" \/><\/a><\/p>\n<p>I clicked through to see the stack reports (14 of them, all the same):<\/p>\n<p><a href=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/StackTrace.png\"><img loading=\"lazy\" src=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/StackTrace.png\" alt=\"\" title=\"StackTrace\" width=\"696\" height=\"177\" class=\"aligncenter size-full wp-image-99\" srcset=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/StackTrace.png 696w, http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/StackTrace-300x76.png 300w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/a><\/p>\n<p>Wow, it pointed me to exactly where the problem was. Oops, I had forgotten to put a synchronize block around the code for popping all the bubbles when the user shakes the device so if a bubble popped of natural causes right during the time it was looping through popping all the bubbles due to shaking it would try to pop a bubble that no longer existed.<\/p>\n<p>The crash reports can also include a user message. One kind user confirmed what I already knew:<\/p>\n<p><a href=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/UserMessages.png\"><img loading=\"lazy\" src=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/UserMessages.png\" alt=\"\" title=\"User Messages\" width=\"754\" height=\"79\" class=\"aligncenter size-full wp-image-100\" srcset=\"http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/UserMessages.png 754w, http:\/\/blog.edwinevans.me\/wp-content\/uploads\/2011\/01\/UserMessages-300x31.png 300w\" sizes=\"(max-width: 754px) 100vw, 754px\" \/><\/a><\/p>\n<p>This is a great feature which should improve app quality. I&#8217;m not happy that the bug existed but without the reports I wouldn&#8217;t have known about it &#8212; at least not for a long time. But don&#8217;t expect to see it anytime soon on Apple which uses native code where getting stack traces is very awkward. I wonder if Google uses this for ranking in the Market. It certainly would be interesting to see crash stats for other apps.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my last post, I said I like WP7 platform best for development, but one thing that blew me away about Android development is when Google came out with crash reports. Developers can see stack traces for all the crashes &hellip; <a href=\"http:\/\/blog.edwinevans.me\/?p=95\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,4,1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=\/wp\/v2\/posts\/95"}],"collection":[{"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=95"}],"version-history":[{"count":18,"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=\/wp\/v2\/posts\/95\/revisions"}],"predecessor-version":[{"id":125,"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=\/wp\/v2\/posts\/95\/revisions\/125"}],"wp:attachment":[{"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.edwinevans.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}