Код работает нормально. Проблема в устройстве / эмуляторе, на котором вы тестируете код.
Если вы используете AVD с целевым значением API Google (любой уровень, начиная с 3), он работает как положено. Однако, если вы используете AVD с нормальной целью Android (это цель без поддержки карт), вы получите ошибку.