How do wallet developers earn money? Does anyone know how the Bitcoin wallet developers earn money?

Do they live on only donations? Is it possible to survive on only donations? 

Why would they develop wallets if they don't make any profit from it? :)
You should know that lots of things in life come for free. Specifically when it comes to software, lots of professional developers would rather develop things "their own way" for free, instead of getting paid and "being forced to do it". Most open source developers also simply enjoy the act of creating things. They're engineers and scientists that care more about people using their inventions, rather than an economical compensation. 

However, as you say, at the end of the day developers have to eat and pay the bills too. If I remember correctly the MultiBit developers will add an option to automatically send a portion of the fees you use for transactions towards themselves. However, I've read this news on some blogs and not directly from the MultiBit developers: http://www.coindesk.com/cash-strapped-multibit-developers-charge-transaction-fee/

But at the end of the day, if you're a developer of a famous bitcoin wallet, you'll have no problems finding a job to earn some money. So money isn't really an issue for most of open source developers. I'd argue that money would actually poison the open source philosophy. You're more in it for the act of creating, for the reputation and fame, for the feeling of doing something nobody has ever done before.