与位置管理器的Nullpointer异常

时间:2011-07-19 03:41:43

标签: android

我写了下面的代码来获得长期持仓

 myLocationManager = (LocationManager)getSystemService    
  (Context.LOCATION_SERVICE);
                  myLocationListener = new MyLocationListener();

          myLocationManager.requestLocationUpdates
  (LocationManager.GPS_PROVIDER, 1, 1, myLocationListener);

  //HERE UNCOMMENT
   latitude=myLocationManager.getLastKnownLocation
  (LocationManager.GPS_PROVIDER).getLatitude();
   longitude=myLocationManager.getLastKnownLocation
         (LocationManager.GPS_PROVIDER).getLongitude();

我在下一行获得Nullpointer例外      (LocationManager.GPS_PROVIDER).getLatitude();

我在启用GPS的Android 2.1手机上测试代码,并在清单文件中提供了以下权限

android.permission.ACCESS_FINE_LOCATION  
android.permission.ACCESS_COARSE_LOCATION  
android.permission.INTERNET  
android.permission.ACCESS_WIFI_STATE  
android.permission.ACCESS_NETWORK_STATE  
android.permission.VIBRATE  

3 个答案:

答案 0 :(得分:0)

无法保证拥有最后一个已知位置。因此,它可以返回为null。

答案 1 :(得分:0)

您是否从DDMS发送了坐标?如果不。然后它会调用位置更新请求,我确信99.9%你不会再为此获得NPE。

答案 2 :(得分:0)

如果您正在使用模拟器,那么在不修复坐标的情况下,您将获得空指针异常。要在模拟器中修复

转到命令提示符:

类型: telnet localhost 5554然后按Enter键,然后输入

geo fix lat lon在此处输入代码enter,现在您将获得lat lon

此处5554是您的模拟器序列号