seregazolotaryow64
@seregazolotaryow64
IT Специалист и самоучка

Как избавиться от дубликатов классов при установке и сборке Mapbox SDK?

Недавно я столкнулся с большой проблемой при загрузке и распаковке Mapbox SDK for Android:
Duplicate class com.mapbox.mapboxsdk.maps.Style$Builder$LayerBelowWrapper found in modules jetified-android-sdk-9.2.1-runtime (org.maplibre.gl:android-sdk:9.2.1) and jetified-mapbox-android-sdk-9.6.1-runtime (com.mapbox.mapboxsdk:mapbox-android-sdk:9.6.1)
     Duplicate class com.mapbox.mapboxsdk.maps.Style$Builder$LayerWrapper found in modules jetified-android-sdk-9.2.1-runtime (org.maplibre.gl:android-sdk:9.2.1) and jetified-mapbox-android-sdk-9.6.1-runtime (com.mapbox.mapboxsdk:mapbox-android-sdk:9.6.1)
     Duplicate class com.mapbox.mapboxsdk.maps.Style$OnStyleLoaded found in modules jetified-android-sdk-9.2.1-runtime (org.maplibre.gl:android-sdk:9.2.1) and jetified-mapbox-android-sdk-9.6.1-runtime (com.mapbox.mapboxsdk:mapbox-android-sdk:9.6.1)

Это отрывок списка ошибок о дубликате классов, которые были допушены при распаковке Mapbox SDK for Android в проекте моего приложения. Стек моего проекта состоит из React Native с логикой на Typescript и кроссплатформенным инструментом Expo SDK и ExpoKit.

Если вы сталкивались с данной проблемой, то как вы её решали?

Примеры конфигурации и кода в комментариях к данному вопросу и заранее вам спасибо!
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
BorLaze
@BorLaze
Java developer
В мавене такие коллизии решаются так:
<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-api.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.storm</groupId>
        <artifactId>storm-core</artifactId>
        <version>${storm.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>


То есть в случае конфликта ты явно указываешь, какой пакет оставить, а откуда его исключить.

Думаю, в gradle аналогичный инструмент наверняка есть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы