Java 获取位置管理器中的错误
我试图找出android设备的当前纬度和经度,但我得到了java.lang.nullpointerexception,并且应用程序正在强制关闭。尽管我从这里得到了参考,并使用了被认为正确的答案中的代码: 我的代码是:Java 获取位置管理器中的错误,java,android,locationmanager,Java,Android,Locationmanager,我试图找出android设备的当前纬度和经度,但我得到了java.lang.nullpointerexception,并且应用程序正在强制关闭。尽管我从这里得到了参考,并使用了被认为正确的答案中的代码: 我的代码是: try{ LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria criteria = new
try{
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(bestProvider);
double latit=location.getLatitude();
double longit=location.getLongitude();
Toast.makeText(getApplicationContext(),"Your Location is:\nLatitude:\t"+latit+"\nLongitude:\t"+longit,Toast.LENGTH_LONG).show();
}catch(Exception ex){
Toast.makeText(getApplicationContext(), "Error:"+ex,Toast.LENGTH_LONG).show();
}
我敢打赌,您的
location
变量为null,这就是为什么您会得到NullPointerException
。调用LocationManager.getLastKnownLocation()
时,如果没有最后一个已知位置,它可能返回null。您最好使用LocationManager.requestLocationUpdates()
方法之一请求位置更新,并传入LocationListener
您可以使用gps跟踪器类获取当前位置
现在在您的活动中:
创建gps跟踪器类的对象
GPSTracker gps = new GPSTracker(youractivity.this);
double _mylats = gps.getLatitude();
double _mylongs = gps.getLongitude();
请粘贴错误日志。很抱歉,我的设备显示不受支持,因此我导出了apk。是设备gps,所有数据都已打开。仍然无法工作。我收到nullpointer异常。包括权限也可以使用gps tracker类获取当前lat LongReference我从未使用过此方法。请告诉我如何使用此方法。我可以推荐的最佳示例来自Reto Meier的博客。我用过这个类,但它给了我0.0的纬度和经度是的
GPSTracker gps = new GPSTracker(youractivity.this);
double _mylats = gps.getLatitude();
double _mylongs = gps.getLongitude();