我写了下面的代码来获得长期持仓
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
答案 0 :(得分:0)
无法保证拥有最后一个已知位置。因此,它可以返回为null。
答案 1 :(得分:0)
您是否从DDMS发送了坐标?如果不。然后它会调用位置更新请求,我确信99.9%你不会再为此获得NPE。
答案 2 :(得分:0)
如果您正在使用模拟器,那么在不修复坐标的情况下,您将获得空指针异常。要在模拟器中修复
转到命令提示符:
类型:
telnet localhost 5554
然后按Enter键,然后输入
geo fix lat lon
在此处输入代码enter
,现在您将获得lat lon
此处5554是您的模拟器序列号