mapbox / mapbox-navigation-android

Mapbox Navigation SDK for Android
https://docs.mapbox.com/android/navigation/overview/
Other
618 stars 318 forks source link

[Android Auto] Fatal Exception: java.lang.Error: latitude must not be NaN #7308

Open narko opened 1 year ago

narko commented 1 year ago

Android API: Mapbox Navigation SDK version: 0.22.0

Steps to trigger behavior

N/A

Expected behavior

No crash

Actual behavior

The following exception is reported a few times in our analytics. Not sure what is provoking this.

Fatal Exception: java.lang.Error: latitude must not be NaN
       at com.mapbox.maps.Projection.unproject(SourceFile)
       at com.mapbox.maps.MapboxMap.unproject(MapboxMap.java:5)
       at com.mapbox.maps.plugin.animation.CameraAnimatorsFactory.getFlyTo$lambda-9(CameraAnimatorsFactory.java:95)
       at android.animation.KeyframeSet.getValue(KeyframeSet.java:202)
       at android.animation.PropertyValuesHolder.calculateValue(PropertyValuesHolder.java:1017)
       at android.animation.ValueAnimator.animateValue(ValueAnimator.java:1698)
       at android.animation.ValueAnimator.animateValuesInRange(ValueAnimator.java:1512)
       at android.animation.AnimatorSet.animateValuesInRange(AnimatorSet.java:1025)
       at android.animation.AnimatorSet.animateBasedOnPlayTime(AnimatorSet.java:883)
       at android.animation.AnimatorSet.initChildren(AnimatorSet.java:1164)
       at android.animation.AnimatorSet.startAnimation(AnimatorSet.java:1384)
       at android.animation.AnimatorSet.start(AnimatorSet.java:741)
       at android.animation.AnimatorSet.start(AnimatorSet.java:696)
       at com.mapbox.navigation.ui.maps.camera.NavigationCamera.startAnimation(NavigationCamera.java:72)
       at com.mapbox.navigation.ui.maps.camera.NavigationCamera.requestNavigationCameraToFollowing(NavigationCamera.java:66)
       at com.mapbox.navigation.ui.maps.camera.NavigationCamera.requestNavigationCameraToFollowing$default(NavigationCamera.java:17)
       at com.mapbox.androidauto.navigation.CarNavigationCamera$locationObserver$1.onNewLocationMatcherResult(CarNavigationCamera.java:136)
       at com.mapbox.navigation.core.trip.session.MapboxTripSession.registerLocationObserver(MapboxTripSession.java:25)
       at com.mapbox.navigation.core.MapboxNavigation.registerLocationObserver(MapboxNavigation.java:7)
       at com.mapbox.androidauto.navigation.CarNavigationCamera$navigationObserver$1.onAttached(CarNavigationCamera.java:11)
       at com.mapbox.navigation.core.lifecycle.MapboxNavigationOwner.register(MapboxNavigationOwner.java:18)
       at com.mapbox.navigation.core.lifecycle.MapboxNavigationAppDelegate.registerObserver(MapboxNavigationAppDelegate.java:9)
       at com.mapbox.navigation.core.lifecycle.MapboxNavigationApp.registerObserver(MapboxNavigationApp.java:11)
       at com.mapbox.androidauto.navigation.CarNavigationCamera.onAttached(CarNavigationCamera.java:116)
       at com.mapbox.maps.extension.androidauto.CarMapSurfaceOwner.onSurfaceAvailable(CarMapSurfaceOwner.java:128)
       at androidx.car.app.utils.RemoteUtils$SurfaceCallbackStub.lambda$onSurfaceAvailable$0(RemoteUtils.java:8)
       at androidx.car.app.utils.RemoteUtils.lambda$dispatchCallFromHost$0(RemoteUtils.java)
       at androidx.car.app.utils.ThreadUtils.runOnMain(ThreadUtils.java:10)
       at androidx.car.app.utils.RemoteUtils.dispatchCallFromHost(RemoteUtils.java:5)
       at androidx.car.app.utils.RemoteUtils.lambda$dispatchCallFromHost$1(RemoteUtils.java:15)
       at android.os.Handler.handleCallback(Handler.java:958)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:205)
       at android.os.Looper.loop(Looper.java:294)
       at android.app.ActivityThread.main(ActivityThread.java:8180)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:946)
TNT0305 commented 3 days ago

I am getting this one reliably on a "flyTo"
Android SDK v11.4.1 Hosted in a MAUI app through a slim binding (that is, most of the interaction with mapbox is in the java code)

EDIT In my case, it was unknowingly passing in NaN for zoom. Oops. So if anyone else hits this issue, please verify that everything your setting for the cameraOptions is a valid value.