runOnFirstFix фактически не работает при первом исправлении местоположения - PullRequest
1 голос
/ 12 июля 2011

При использовании mapView runOnFirstFix выдает исключение нулевого указателя, потому что MyLocOverlay.getMyLocation() равно нулю. Однако этого не должно происходить, потому что runOnFirstFix не должен запускаться, когда расположение пустое. Что здесь происходит?

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

Я использую эмулятор для запуска этого кода, так что, возможно, это проблема с эмулятором?

1 Ответ

1 голос
/ 12 июля 2011

Я не изучал этот API, но почему бы вам не обернуть этот вызов в блок if, который проверяет, является ли местоположение нулевым?

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

И что еще более важно, если вы используете эмулятор, вам необходимо убедиться, что вы загружаете исправления эмулятора gps с точки зрения DDMS, в этом руководстве объясняется, как:

Вы здесь: Использование GPS и Google Maps в Android

...