Я использую созданную мной библиотеку aar. И в моем проекте, и в библиотеке есть реализация зависимостей библиотеки Conceal (каждая из своей собственной папки lib).
Когда я создаю проект после импорта библиотеки и использования обфускации ProGuard, я получаю следующее сообщение об ошибке:
Error: Program type already present: com.facebook.crypto.cipher.NativeGCMCipher
Как я могу решить эту проблему?
эта ошибка означает, что вы импортируете зависимость, которая уже импортирована в проект.
решение: - удалить или исключить эту зависимость
бывший:-
compile ('com.github.ganfra:material-spinner:1.1.1'){
exclude group: 'com.nineoldandroids'
}
Я использую файл jar: файлы реализации ('libs / hide_android.jar') файлы реализации ('libs / libconceal.jar'), если я пишу: файлы реализации ('libs / libconceal.jar') {исключить группу: 'com.facebook.crypto.cipher.NativeGCMCipher'}
@ Пусть имя класса - это не имя пакета; запускаем ./gradlew app:dependencies > dependencies.txt и добавляем в вопрос; тогда, наверное, можно на это ответить.
это дает мне ошибку - «Gradle DSL method not found: 'exclude ()'», когда я пишу - «файлы реализации ('libs / libconceal.jar') exclude (group: 'com.facebook.crypto.Conceal')»
@Itay, зачем вам исключать пакет из самого себя? см. комментарий выше.
Я хочу исключить его из реализации библиотеки, пока он еще существует в реализации проекта. иначе я получу ошибку «Тип программы уже присутствует»
согласно mavenCentral(), это имя пакета (которое можно использовать вместо .jar):
// https://mvnrepository.com/artifact/com.facebook.conceal/conceal
implementation "com.facebook.conceal:conceal:2.0.2"
поэтому исключение должно выглядеть примерно так:
implementation( project(":libraryproject") ) {
exclude group: "com.facebook.conceal"
}
Я получаю сообщение об ошибке «Gradle DSL method not found: 'exclude ()'»
@Itay вы уверены, что использовали код, как показано? этот синтаксис правильный. если у вас есть Gradle DSL method not found: 'exclude()', возможно, вам не хватает окружающих скобок ().
Насколько я понимаю, ошибка означает, что я импортировал зависимость, которая уже импортирована в проект (один раз в проекте и один раз в библиотеке). В предлагаемых решениях @Mayur Dabhi и @Martin Zeitler был правильный подход, но, к сожалению, мне не удалось заставить работать команду exclude.
наконец, с помощью @Martin Zeitler я заменил:
implementation files('libs/conceal_android.jar')
implementation files('libs/libconceal.jar')
с участием:
implementation "com.facebook.conceal:conceal:2.0.2"
Это означает, что я удалил файлы jar «Скрыть» из папки «lib» и импортировал зависимость. После этого сообщение об ошибке исчезло, и мне удалось собрать проект.
Спасибо всем, кто пытался помочь :)
Я понимаю, что зависимость уже импортирована, но при удалении ее из библиотеки я не могу построить, потому что в ней отсутствует библиотека, и когда я удаляю ее из проекта, она не может импортировать из библиотеки. Как мне исключить его из библиотеки?