Android、Eclipse IDEでSKMapsを使用しています。これまでのところ、アプリケーションにマップ ビューをロードし、ルート計算を実行することができました (SKRouteManager を使用して、GPS 位置と画面をタップして選択した GPS 位置の間で Route() を計算します)。
ルートが正しく計算され、マップに表示されます。
次にやりたいことは、ルートのターンバイターン ナビゲーションを開始することです。- 私が理解した限りでは、ナビゲーション マネージャーのインスタンスを取得し、ターンバイターン方式のナビゲーションを初期化するには、次のコード行を含めるだけで済みました。
SKNavigationManager.getInstance().startNavigation(new SKNavigationSettings());
これを実行すると、ナビゲーションが開始するか、少なくとも開始するように見えます。開始点は、通常、車の位置を示す「円で囲まれた矢印」記号に変わります。問題は、アプリケーションがさらに 1 ~ 2 秒間開いたままになっている兆候が見られた後、次の例外でクラッシュすることです。
D/SKMaps(9339): SKRouteManager----RouteCompleteCallback Distance=499 Status=600 CompleteRoute=true 668590
D/SKMaps(9339): SKNavigationManager----Start navigation
E/SKMaps(9339): SKNavigationManager----CCP Position vertical alignment -0.25
E/SKMaps(9339): SKNavigationManager----Measurement unit 2
D/SKMaps(9339): SKNavigationManager----Real navigation
D/SKMaps(9339): SKNavigationManager---- Navigate
W/dalvikvm(9339): threadid=13: thread exiting with uncaught exception (group=0x41ae5700)
E/AndroidRuntime(9339): FATAL EXCEPTION: Thread-4964
E/AndroidRuntime(9339): java.lang.NullPointerException
E/AndroidRuntime(9339): at com.skobbler.ngx.navigation.SKNavigationManager.updateroutestate(SourceFile:410)
E/AndroidRuntime(9339): at dalvik.system.NativeStart.run(Native Method)
D/SKMaps(9339): SKCurrentPositionProvider----stopped receiving position updates