An app is a complex piece of software that depends on many other complex pieces of software to work correctly. Even if one of these has a subtle programming error, the entire app will crash.
In our apps, we strive to reduce our crash rate to effectively zero, but this is virtually impossible, so we try to make it as low as possible.
Device Diversity: With tens and thousands of random Android phones all over the world, each running a custom unverified build of Android, code that works well on 99.9% of devices will unexpectedly crash on 1 or 2 devices (usually from the same manufacturer).
Dependencies: Android apps depend on other software such as Google Play Services, which crashes way more than the core app code. Since we did not write that code, we have no ability to fix it, even if we wanted to.
Rendering Library: For displaying Web pages, our apps uses the Android WebView component from Google. This component also crashes way more than the rest of the app code. Again, we cannot fix this.
Device Constraints: Other apps running at the same time on the phone may cause resource competition, which leaves our app no option but to quit unexpectedly.
Despite all these, we try our very best to make our apps crash as little as possible.
We do several things to detect and fix crashes.
Detection: Google Play & Analytics provide us crash logs whenever the app crashes on your phone. We appreciate you taking the time to report these. Note that these crash reports don’t include your email address, so if you want us to reply to you, please type in your email address manually in the Text Description field when sending a bug report.
Analysis: We regularly look at these crash reports, especially to see if there are repeated patterns.
Fixes: If we find that a particular bug was caused by our app code, those are the easiest ones: you will typically see the fix in the immediate next version.
Mitigation: If the crash involved another component, then we try everything possible to mitigate the impact of the crash. This includes detecting invalid conditions and writing code defensively to guard against them.
– ¯\_(ツ)_/¯: For some crashes in Google libraries and tools, we really have no option but to shrug and say sorry! All we can say is, please keep reporting these issues, and we hope Google will address them in the next update.