Сбой при загрузке Android Mapbox SDK: «HTTP status code 404»

#android #mapbox-android #mapbox-studio

#Android #mapbox-android #mapbox-studio

Вопрос:

не удалось найти ответ на эту проблему в SO и github.

Я получаю loading style failed: "HTTP status code 404 в onDidFailLoadingMap прослушивателе, когда пытаюсь загрузить стиль с помощью URI, который я получил из Mapbox Studio.

Я дважды проверил URI и токен в своем коде, и все это отлично работает в IOS.

код аналогичен коду в примерах Mapboxhttps://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()));
  

в результате я получаю пустой экран без карты.

я был бы рад добавить любые фрагменты кода, если это необходимо.

спасибо 🙂

Ответ №1:

После нескольких часов отладки я наконец понял, в чем проблема.

У меня было Mapbox.getInstance в моем файле приложения (который запускается перед первым действием), что каким-то образом сделало более позднее Mapbox.getInstance значение в файле действия неактуальным.

Как только я изменил токен в первом Mapbox.getInstance , это сработало.

Вероятно, причина, по которой это сработало для uri из примеров mapbox, заключается в том, что эти uri являются общедоступными и не требуют определенного токена.

Надеюсь, это поможет кому-то с такой же проблемой.