Я думаю, что это не проблема.в вашем коде, если он работает в эмуляторе. но вы не запускаете GPS на своем телефоне.так что он дает исключение нулевого указателя.
так что теперь, когда вы используете gps, сначала проверьте, включен или нет gps. thn fetch lang.и долго.
вы можете проверить, включен или выключен ваш gps следующим образом:
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
boolean val = mlocManager.isProviderEnabled (LocationManager.GPS_PROVIDER)