runOnFirstFix实际上并未在第一个位置修复上运行

时间:2011-07-12 19:18:41

标签: android android-emulator android-mapview

使用mapView时,runOnFirstFix会抛出空指针异常,因为MyLocOverlay.getMyLocation()为空。但是,这不应该发生,因为当位置为null时,runOnFirstFix不应该运行。这是怎么回事?

myLocOverlay.runOnFirstFix(new Runnable() { public void run() {
    map.getController().animateTo(myLocOverlay.getMyLocation());                
}

我正在使用模拟器运行此代码,所以可能是模拟器问题?

1 个答案:

答案 0 :(得分:1)

我没有查看过这个API,但为什么不将该调用包装在if块中,以检查该位置是否为空?

if (myLocOverlay.getMyLocation() != null) {
  myLocOverlay.runOnFirstFix(new Runnable() { public void run() {
    map.getController().animateTo(myLocOverlay.getMyLocation());                
  }
}

更重要的是,如果您使用的是模拟器,则需要确保从DDMS角度提供模拟器gps修复程序,本教程将解释如何:

You Are Here: Using GPS and Google Maps in Android