I regularly obtain the infamously unhelpful "unfortunately crappyApp has stopped working". How to figure out what actually went wrong? I guess there's a stack trace somewhere, though ideally I'd like to modify the unhelpful message itself if that is possible on a rooted device.
There are multiple ways to obtain useful information. But as Dan pointed out, on-device solutions will require root (starting with JellyBean) – and off-device solutions ADB:
adb logcatwas already described in Dan's answer. For more details, you can see our logging tag-wiki.
adb bugreport > report.txtgives very detailed information, including details from the
logcattools. Several tools for easier analysis of its output can be found e.g. in the answers to Better method of viewing “adb bugreport” output? on our sister-site.
- there are tools to be installed on your computer which utilize the above (or at least parts of it), like QtADB (for Linux, Mac, and Windows)
- there are Android apps like Bug Reporter; but as pointed out, most of them will require root. Bug Report Reader however claims to read system logs (logcat, dumpsys, dmesg, top and much more) on your device, without root, so that might be worth trying.
In most cases, if USB debugging is turned on, you can use
adb logcat to see the exception output. This usually includes a stack trace, but that's not often useful unless you have the app's source code. All the same, the developer of the app will probably be grateful if you include it in any bug report.
Read the files under
/data/anr/ which stands for "apps not responding". I use
adb shell cat /data/anr/$FILE
There will be one for every app which force closes, or is not responding for some reason.
You can simply see the crash stack trace after any crash happens. Use ADB command below,
adb logcat -b crash #default adb -d logcat -b crash #show from device when multiple device adb -s logcat -b crash #show from simulator when multiple device