【问题标题】:Android Location Error安卓定位错误
【发布时间】:2011-02-12 06:13:57
【问题描述】:

我用几行代码将我的问题挑出来

lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 5.0f, this);
lat = location.getLatitude();
lng = location.getLongitude();
//lat = new Double(40.431682);
//lng = new Double(-74.2021819);
pLocation = new GeoPoint((int)(lat * 1000000), (int)(lng * 1000000));

如果您想知道,我的 onLocationChanged

public void onLocationChanged(Location location) {
        if (location != null) {
        lat = location.getLatitude();
        lng = location.getLongitude();
        pLocation = new GeoPoint((int)(lat * 1000000), (int)(lng * 1000000));
        }
}

如果我尝试获取 LastKnownLocation,我的应用程序会崩溃

但如果我手动输入位置,它会正常工作

我现在不知道出了什么问题

【问题讨论】:

    标签: java android gps location locationmanager


    【解决方案1】:

    首先,当您遇到崩溃时,请使用adb logcat、DDMS 或 Eclipse 中的 DDMS 透视图来获取与崩溃相关的 Java 堆栈跟踪。在这种情况下,我怀疑您在尝试使用 location 对象时会发现您有一个 NullPointerException

    在调用requestLocationUpdates() 之后,您才能使用getLastKnownLocation(),尤其是对于GPS。 GPS 可能需要几十秒才能开始提供修复。

    请更改您的代码以消除您对getLastKnownLocation() 的使用,并仅使用您的onLocationChanged() 方法中需要该位置的逻辑。至少,寻找 null location 对象,不要尝试使用它。

    【讨论】:

    • 感谢您的到来!我自己发布后不久就修复了它
    【解决方案2】:

    我的解决方法基本上是只使用粗略的位置。

    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_COARSE);
    String bestProvider = lm.getBestProvider(criteria, true);
    Location loc = lm.getLastKnownLocation(bestProvider);
    lat = loc.getLatitude();
    lng = loc.getLongitude();
    

    【讨论】:

      【解决方案3】:

      这可能是因为您的设备上未启用精确定位 (GPS)。或者您的清单中未指定 ACCESS_FINE_LOCATION 权限。

      【讨论】:

        【解决方案4】:

        我敢打赌,如果您进行调试,您会看到空异常。之所以会发生这种情况,是因为您试图从尚未修复的位置提取纬度和经度。用 if (loc!=null) {} 包围这个提取,并把 progressDialog 放在那里

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多