我们刚刚升级到SkobburerSDK2.4与我们的B2B应用程序。现在我们遇到了以下问题:
在计算路由时,应用程序调用SKRouteManager.getInstance().calculateRoute.后会出现空指针异常崩溃
这是代码:(在升级之前,它运行得很好.)
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);空的ArrayLists是故障排除的测试。
2.4中是否存在已知的问题,或者更新是否有其他更改?
发布于 2015-03-17 00:39:52
我和你有同样的问题。路由使用旧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文件存储在其他地方,这将不适用于您。
希望这会有所帮助:)
https://stackoverflow.com/questions/29072340
复制相似问题