I do have some apps crash, but that's the app developer's problem. Not much the OS vendor can do about that.
I've written a somewhat popular Android app and most of its crashes are either the fault of the runtime or of vendor specific customizations.
The Developer Console provides excellent reporting on both uncaught Java exceptions and crashes in native code. Most often, the Dalvik VM crashes during garbage collection. The Dalvik class loader is also flaky and has issues with multithreading that only got worked around in newer versions. I've also seen the libchromium crash inside my app from adverts delivered by Googles Admob service, which is somewhat scary from a security perspective.
Another issue is that apps using Googles compatibility library now crash on HTC devices running Android 4.1 as soon as the user presses the menu key. HTC is no longer providing updates and Google simply states that it's not their fault and therefore not their problem. Now thousands of app developers have to independently find out about the issue and work around it.
So when an app crashes, there's a good chance that it's not the fault of the app developer. On a brighter note, the ART VM used in Android 5 and newer seem to be rock solid.