Let me throw the question back at you -- why do you think the use of Java or some other interpreted language avoids the issue of different hardware platforms? Right now, if you want to develop for iOS, you can't just slap a program together and assume it will run just fine on all the iOS devices; you've got to deal with many different screen resolutions (original iPhone, retina-display iPhone, and iPad); significant differences in CPU and GPU abilities among the various devices; and lots of variance in odd bits of hardware (depending on the device, there may or may not be a camera, cell phone, GPS, microphone, etc...) With Android, it looks like manufacturers have even more liberty to play around with their hardware.