首页 > 解决方案 > Android Mapbox SDK 加载样式失败:“HTTP 状态码 404”

问题描述

在 SO 和 github 中找不到这个问题的答案。

当我尝试使用从 Mapbox Studio 获得的 URI 加载样式时,我进入loading style failed: "HTTP status code 404了监听器。onDidFailLoadingMap

我已经仔细检查了代码中的 URI 和令牌,并且在 IOS 中一切正常。

该代码类似于 Mapbox 示例中的代码https://docs.mapbox.com/android/maps/examples/use-a-mapbox-studio-style/

如果我放置他们的样式 URI 之一,它也可以正常工作。

        Mapbox.getInstance(this, getResources().getString(R.string.my_studio_token));
        mapView.onCreate(savedInstanceState);

        mapView.addOnDidFailLoadingMapListener(new MapView.OnDidFailLoadingMapListener() {
            @Override
            public void onDidFailLoadingMap(String errorMessage) {
                Log.i("style_load", errorMessage); //gets here after failure
            }
        });

        mapView.getMapAsync(mapboxMap -> {
            mapboxMap.setStyle(new Style.Builder().fromUri(getResources().getString(R.string.travily_style_uri)), 
                               style -> Log.i("style_load", style.toString()));

结果我得到一个没有地图的空屏幕。

如果需要,我很乐意添加任何代码片段。

谢谢 :)

标签: androidmapbox-androidmapbox-studio

解决方案


经过几个小时的调试,我终于找到了问题所在。

Mapbox.getInstance在我的应用程序文件中(在第一个活动之前启动)以某种方式使活动文件中的后者Mapbox.getInstance无关紧要。

一旦我首先更改了令牌,Mapbox.getInstance它就起作用了。

可能它适用于 mapbox 示例中的 uri 的原因可能是因为这些 uri 是公共的并且不需要特定的令牌。

希望它会帮助有同样问题的人。


推荐阅读