If you have to test on all the devices and make individual builds for different devices, development sucks. I was at Loopt when we supported J2ME, where every phone that was supposed to be the same[1] was different, and per-device builds were the only solution. It was a nightmare. In the long term, I fear Android won't be much better in that regard.
[1] Java runs the same everywhere! All the JREs are validated by Sun and pass the same tests!