升级到 Skobbler SDK 2.4 - RouteCalculation 错误
Upgrade to Skobbler SDK 2.4 - RouteCalculation Error
我们刚刚将我们的 B2B 应用程序升级到 Skobbler SDK 2.4。现在我们遇到了以下问题:
计算Route时,调用SKRouteManager.getInstance().calculateRoute.
后App崩溃并报空指针异常
这是代码:(在升级之前它运行良好...)
SKRouteSettings route = new SKRouteSettings();
route.setStartCoordinate(ApplicationData.getInstance().getCurrentCoordinate());
route.setDestinationCoordinate(goal);
route.setNoOfRoutes(1);
route.setRouteMode(SKRouteSettings.SKRouteMode.PEDESTRIAN);
route.setAlternativeRouteModes(new ArrayList<SKRouteAlternativeSettings>()); route.setRouteConnectionMode(SKRouteSettings.SKRouteConnectionMode.OFFLINE);
route.setRouteExposed(true);
route.setViaPoints(new ArrayList<SKViaPoint>());
SKRouteManager.getInstance().setRouteListener(this);
SKRouteManager.getInstance().setAudioAdvisorSettings(new SKAdvisorSettings());
SKRouteManager.getInstance().calculateRoute(route);
空的 ArrayList 是用于故障排除的测试。
2.4 是否存在已知问题或更新是否有任何其他变化?
我遇到了和你完全一样的问题。路由适用于旧 SDK,不适用于新 SDK。
经过一番努力后,我认为您的问题源于这一行:
SKRouteManager.getInstance().setAudioAdvisorSettings(new SKAdvisorSettings());
尝试使用此代码来设置音频顾问:
final SKAdvisorSettings advisorSettings = new SKAdvisorSettings();
advisorSettings.setLanguage(SKAdvisorSettings.SKAdvisorLanguage.LANGUAGE_EN);
advisorSettings.setAdvisorConfigPath(context.getFilesDir() + "/SKMaps/Advisor");
advisorSettings.setResourcePath(context.getFilesDir() + "/SKMaps/Advisor/Languages");
advisorSettings.setAdvisorVoice("en");
advisorSettings.setAdvisorType(SKAdvisorSettings.SKAdvisorType.AUDIO_FILES);
SKRouteManager.getInstance().setAudioAdvisorSettings(advisorSettings);
在计算路线之前需要调用此代码。我喜欢将我的代码放在其余代码之上,以将它们分开(即我刚刚发布的块可以位于您发布的代码之上)
您可能想要做的唯一更改是更改这些行:
advisorSettings.setAdvisorConfigPath(context.getFilesDir() + "/SKMaps/Advisor");
advisorSettings.setResourcePath(context.getFilesDir() + "/SKMaps/Advisor/Languages");
以便它们指向您 SKMaps/Advisor 文件夹的正确位置。我一直在使用内部应用程序存储,所以 context.getFilesDir() 将始终为我工作。如果您使用外部存储或将 SKMaps 文件存储在其他地方,这对您不起作用。
希望这对您有所帮助:)
我们刚刚将我们的 B2B 应用程序升级到 Skobbler SDK 2.4。现在我们遇到了以下问题:
计算Route时,调用SKRouteManager.getInstance().calculateRoute.
后App崩溃并报空指针异常这是代码:(在升级之前它运行良好...)
SKRouteSettings route = new SKRouteSettings();
route.setStartCoordinate(ApplicationData.getInstance().getCurrentCoordinate());
route.setDestinationCoordinate(goal);
route.setNoOfRoutes(1);
route.setRouteMode(SKRouteSettings.SKRouteMode.PEDESTRIAN);
route.setAlternativeRouteModes(new ArrayList<SKRouteAlternativeSettings>()); route.setRouteConnectionMode(SKRouteSettings.SKRouteConnectionMode.OFFLINE);
route.setRouteExposed(true);
route.setViaPoints(new ArrayList<SKViaPoint>());
SKRouteManager.getInstance().setRouteListener(this);
SKRouteManager.getInstance().setAudioAdvisorSettings(new SKAdvisorSettings());
SKRouteManager.getInstance().calculateRoute(route);
空的 ArrayList 是用于故障排除的测试。
2.4 是否存在已知问题或更新是否有任何其他变化?
我遇到了和你完全一样的问题。路由适用于旧 SDK,不适用于新 SDK。
经过一番努力后,我认为您的问题源于这一行:
SKRouteManager.getInstance().setAudioAdvisorSettings(new SKAdvisorSettings());
尝试使用此代码来设置音频顾问:
final SKAdvisorSettings advisorSettings = new SKAdvisorSettings();
advisorSettings.setLanguage(SKAdvisorSettings.SKAdvisorLanguage.LANGUAGE_EN);
advisorSettings.setAdvisorConfigPath(context.getFilesDir() + "/SKMaps/Advisor");
advisorSettings.setResourcePath(context.getFilesDir() + "/SKMaps/Advisor/Languages");
advisorSettings.setAdvisorVoice("en");
advisorSettings.setAdvisorType(SKAdvisorSettings.SKAdvisorType.AUDIO_FILES);
SKRouteManager.getInstance().setAudioAdvisorSettings(advisorSettings);
在计算路线之前需要调用此代码。我喜欢将我的代码放在其余代码之上,以将它们分开(即我刚刚发布的块可以位于您发布的代码之上)
您可能想要做的唯一更改是更改这些行:
advisorSettings.setAdvisorConfigPath(context.getFilesDir() + "/SKMaps/Advisor");
advisorSettings.setResourcePath(context.getFilesDir() + "/SKMaps/Advisor/Languages");
以便它们指向您 SKMaps/Advisor 文件夹的正确位置。我一直在使用内部应用程序存储,所以 context.getFilesDir() 将始终为我工作。如果您使用外部存储或将 SKMaps 文件存储在其他地方,这对您不起作用。
希望这对您有所帮助:)