Повторяющийся класс org. apache .commons - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь запустить сборку на Android. Я создаю мост React-Native для библиотеки Java. Однако я получаю сообщение об ошибке Duplicate class, которое выглядит следующим образом:

Duplicate class org.apache.commons.lang3.builder.CompareToBuilder 
found in modules commons-lang3-3.9.jar (org.apache.commons:commons-lang3:3.9) 
and creditCardNfcReader-1.0.3-runtime.jar (com.github.pro100svitlo:creditCardNfcReader:1.0.3)

Распечатывается весь список этих ошибок. Также есть немного другая ошибка, которая выглядит так:

Duplicate class bolts.BoltsExecutors$ImmediateExecutor found in 
modules bolts-tasks-1.4.0.jar (com.parse.bolts:bolts-tasks:1.4.0) 
and jetified-bolts-android-1.1.2.jar (com.parse.bolts:bolts-android:1.1.2)

Мои зависимости в настоящее время выглядят так в моем файле build.gradle:

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.facebook.react:react-native:+"
implementation 'com.github.pro100svitlo:creditCardNfcReader:1.0.3'
    addUnimodulesDependencies()

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }
}

Я попытался исключить модули и группы из зависимостей пока не повезло. Вот несколько подходов, которые я пробовал в соответствии с рекомендациями из нескольких источников:

1.

implementation ("com.facebook.react:react-native:+") {
exclude group: 'com.parse.bolts', module: 'bolts-tasks'
} 

2.

implementation ("com.facebook.react:react-native:+") { exclude module: 'bolts-tasks'}

3.

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.facebook.react:react-native:+"
implementation 'com.github.pro100svitlo:creditCardNfcReader:1.0.3'
    addUnimodulesDependencies()

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }
}

configurations { runtime.exclude group: '*' }

Я был бы очень признателен за любую помощь в поиске решения этой проблемы. Заранее спасибо.

1 Ответ

0 голосов
/ 19 июня 2020

Метод exclude закрытия конфигурации для зависимости исключает транзитивные зависимости. Итак, если зависимость вашего модуля зависит от других модулей, вы можете исключить их из своей сборки. Вы можете проверить транзитивные зависимости модуля com.facebook.react: react-native: + в его репозитории maven. https://mvnrepository.com/artifact/com.facebook.react/react-native/0.20.1

Попробуйте указать версию зависимости вместо использования '+', чтобы избежать конфликта.

Вот некоторая справочная информация для проверки разрешения файлов плагинов и зависимостей конфликты.

ссылка на пакет jarjar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...