You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android平台HERE SDK调用路由API遇404错误求助

HERE SDK Explorer Edition(Android)调用Routes API出现404错误的解决方法

问题现象

  • 网页浏览器直接调用HERE Routes API可正常返回结果
  • Android应用中通过SDK的importRoute()方法导入路由时,抛出错误:Routing error: 1, exception: Requested resource not found, error code: 404

用户使用的API请求地址

https://router.hereapi.com/v8/routes?apikey=-YOUR_API_KEY&origin=52.524465%2C13.382334&destination=52.525301%2C13.399844&return=polyline%2Csummary%2Cactions%2Cinstructions%2CrouteHandle&transportMode=car

用户当前的错误代码

routingEngine.importRoute(
        new RouteHandle(apiCall), // 错误:直接传入完整API请求URL
        new RefreshRouteOptions(TransportMode.CAR),
        new CalculateRouteCallback() {
            @Override
            public void onRouteCalculated(@Nullable RoutingError routingError, @Nullable List<Route> routes) {
                if (routingError == null) {
                    Route route = routes.get(0);
                    showRouteDetails(route);
                    showRouteOnMap(route);
                    getManeuverInstructions(route);
                    logRouteViolations(route);
                } else {
                    Log.e("Error while calculating a route:", routingError.toString());
                }
            }
        }
);

问题原因

RouteHandle构造函数需要传入的是Routes API返回结果中的routeHandle字段值,而非完整的API请求URL。直接传入API调用地址会导致SDK无法识别目标资源,从而返回404错误。

修正步骤

  1. 通过HTTP请求调用Routes API,获取响应体中的routeHandle字符串(需确保请求参数包含return=routeHandle)
  2. 将获取到的routeHandle字符串传入RouteHandle构造函数,再调用importRoute()方法

修正后的代码示例

// 1. 先通过网络请求获取routeHandle(示例用OkHttp,可根据实际框架调整)
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
        .url("https://router.hereapi.com/v8/routes?apikey=YOUR_API_KEY&origin=52.524465%2C13.382334&destination=52.525301%2C13.399844&return=routeHandle&transportMode=car")
        .build();

client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(@NotNull Call call, @NotNull IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
        if (response.isSuccessful() && response.body() != null) {
            String responseBody = response.body().string();
            // 解析JSON获取routeHandle(示例用Gson,可根据实际解析库调整)
            RouteApiResponse routeResponse = new Gson().fromJson(responseBody, RouteApiResponse.class);
            String routeHandleStr = routeResponse.routes.get(0).routeHandle;

            // 2. 在主线程调用SDK的importRoute方法
            runOnUiThread(() -> {
                routingEngine.importRoute(
                        new RouteHandle(routeHandleStr),
                        new RefreshRouteOptions(TransportMode.CAR),
                        new CalculateRouteCallback() {
                            @Override
                            public void onRouteCalculated(@Nullable RoutingError routingError, @Nullable List<Route> routes) {
                                if (routingError == null) {
                                    Route route = routes.get(0);
                                    showRouteDetails(route);
                                    showRouteOnMap(route);
                                    getManeuverInstructions(route);
                                    logRouteViolations(route);
                                } else {
                                    Log.e("Route Error", routingError.toString());
                                }
                            }
                        }
                );
            });
        }
    }
});

// 辅助解析用的实体类
class RouteApiResponse {
    List<RouteData> routes;
    class RouteData {
        String routeHandle;
    }
}

注意事项

  • 确保AndroidManifest.xml中添加网络权限:<uses-permission android:name="android.permission.INTERNET" />
  • 确认API Key有效且权限覆盖路由相关服务
  • RefreshRouteOptions中的TransportMode需与Routes API请求的transportMode参数一致
  • 保证SDK版本与参考文档版本(4.13.5.0)匹配

内容的提问来源于stack exchange,提问作者Addict of Rice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:15:24