我正试图获得当前的长期,拉特。我正在获得Nullpointer
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener myLocationListener = new CurrentLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, myLocationListener);
Location currentLocation = locationManager.getLastKnownLocation("gps");
Latitude = currentLocation.getLatitude(); ----->>> null pointer exception here
Longitude = currentLocation.getLongitude();
public class CurrentLocationListener implements LocationListener{
public void onLocationChanged(Location argLocation) {
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle arg2) {
}
}
我的清单文件
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
答案 0 :(得分:3)
这通常是因为没有最后知道的位置。要强制获取位置,您可以注册位置更新并等待,或者您可以启动谷歌地图应用程序,使用菜单获取位置 - &gt;我的位置,返回您的应用程序,最后知道位置不应该为空。
答案 1 :(得分:1)
您是否在清单文件中设置了正确的权限?类似的东西:
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
答案 2 :(得分:1)
有点明显......
Location currentLocation = locationManager.getLastKnownLocation("gps");
if (currentLocation != null)
{
Latitude = currentLocation.getLatitude();
Longitude = currentLocation.getLongitude();
}
现在,关于为什么locationManager返回空引用而不是实际的位置引用...很难用提供的代码知道。可能是什么。
编辑:嗯,好像你可能有no gps fix yet。
答案 3 :(得分:1)
我自己终于得到了答案......