Sadly, even an emulator isn't going to catch 100% of these types of problems. The only sure-fire way to ensure the app works on a particular device is to test it on that device. You are going about it the right way by having a friend test your app on his device (asking friends and family to help test is usually an easy way to expand your test matrix).
I would recommend having some way for users to provide feedback other than the standard Android market feedback mechanism (such as a web forum or a "questions and comments" email address). Even though you will likely get many frustrated or angry messages, you will also find that there are a lot of friendly Android users out there who will be happy to help you out by sending you details about a crash or possibly even testing a special debug version of your app. I have seen some apps that have an option to enable debug logging in the application menus; anyone that wants to help can simply check the box, restart the app, and once it crashes, email the log file to the developer (of course, you'd want to include instructions about how to do this). This won't help with startup-related crashes, but you can have a separate file for logging app startup information (and have it always enabled).