I've implemented version 0.4.0 that works perfectly when MockLocationEngine() is deployed. When switched to real life, navigation fails ass seen in screenrecord hereunder.
NOTE: I haven't implemented any LocationEnige() while real life navigating, so I believe it would not rise a problem as one below:
ERRORLOG
> Fatal Exception: java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3
> at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
> at java.util.ArrayList.get(ArrayList.java:308)
> at com.mapbox.services.android.navigation.v5.DefaultMilestones$2.buildInstruction(DefaultMilestones.java:63)
> at com.mapbox.services.android.navigation.v5.NavigationEngine.buildInstructionString(NavigationEngine.java:129)
> at com.mapbox.services.android.navigation.v5.NavigationEngine.onLocationChanged(NavigationEngine.java:104)
> at com.mapbox.services.android.navigation.v5.NavigationService.onLocationChanged(NavigationService.java:243)
> at com.mapbox.services.android.location.LostLocationEngine.onLocationChanged(LostLocationEngine.java:145)
> at com.mapzen.android.lost.internal.FusedLocationProviderApiImpl.reportLocation(FusedLocationProviderApiImpl.java:121)
> at com.mapzen.android.lost.internal.FusionEngine.onLocationChanged(FusionEngine.java:134)
> at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:286)
> at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:215)
> at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:231)
> at android.os.Handler.dispatchMessage(Handler.java:102)
> at android.os.Looper.loop(Looper.java:145)
> at android.app.ActivityThread.main(ActivityThread.java:6939)
> at java.lang.reflect.Method.invoke(Method.java)
> at java.lang.reflect.Method.invoke(Method.java:372)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
>
> Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.mapbox.services.api.directions.v5.models.DirectionsRoute.getLegs()' on a null object reference
> at com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress.create(RouteProgress.java:59)
> at com.mapbox.services.android.navigation.v5.NavigationEngine.onLocationChanged(NavigationEngine.java:77)
> at com.mapbox.services.android.navigation.v5.NavigationService.forceLocationUpdate(NavigationService.java:168)
> at com.mapbox.services.android.navigation.v5.NavigationService.startRoute(NavigationService.java:156)
> at com.mapbox.services.android.navigation.v5.MapboxNavigation$NavigationServiceConnection.onServiceConnected(MapboxNavigation.java:485)
> at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1320)
> at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1337)
> at android.os.Handler.handleCallback(Handler.java:739)
> at android.os.Handler.dispatchMessage(Handler.java:95)
> at android.os.Looper.loop(Looper.java:145)
> at android.app.ActivityThread.main(ActivityThread.java:6939)
> at java.lang.reflect.Method.invoke(Method.java)
> at java.lang.reflect.Method.invoke(Method.java:372)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

I've implemented version 0.4.0 that works perfectly when MockLocationEngine() is deployed. When switched to real life, navigation fails ass seen in screenrecord hereunder.
NOTE: I haven't implemented any LocationEnige() while real life navigating, so I believe it would not rise a problem as one below:
ERRORLOG