Java 获取位置管理器中的错误

Java 获取位置管理器中的错误,java,android,locationmanager,Java,Android,Locationmanager,我试图找出android设备的当前纬度和经度,但我得到了java.lang.nullpointerexception,并且应用程序正在强制关闭。尽管我从这里得到了参考,并使用了被认为正确的答案中的代码: 我的代码是: try{ LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria criteria = new

我试图找出android设备的当前纬度和经度,但我得到了java.lang.nullpointerexception,并且应用程序正在强制关闭。尽管我从这里得到了参考,并使用了被认为正确的答案中的代码: 我的代码是:

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();