2016-12-01 3 views
0

Я использовал 2 третьему лицу AAR зависимостей в моей Android Project иИсключить повторяющиеся записи на два AAR Android

они оба используют то же кодировка библиотека называется org.spongycastle.util.

Но проблема здесь, когда я скомпилировал он показывает ошибку на Gradle

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. 
> com.android.build.api.transform.TransformException:java.util.zip.ZipException: duplicate entry: org/spongycastle/util/encoders/Base64.class 

Я попытался исключить одну зависимости от AAR на Gradle Скомпилируйте по

compile(name: 'libraryname', ext: 'aar') { 
    exclude group: 'org.spongycastle.util' 
} 

Но нет везения решения вопроса :(

Любая помощь будет принята за исключение или игнорирование одной зависимости

+0

Привет, вы в конечном итоге решили эту проблему? Я застрял в этой идентичной ошибке. –

+0

Привет, я решил это, изменив имена классов SpongyCastle, поскольку мне не удалось «исключить org.spongycastle» на aar.Its не рекомендуется, но он работает. – WinHtaikAung

+0

круто, но можете ли вы объяснить, что именно вы имеете в виду, изменив имена классов? Я имею в виду, у меня просто есть два арта в моем проекте, и у обоих есть банки Spongycastle под капотом и использовать их внутри, я не должен использовать что-либо из Spongycastle явно. –

ответ

0

Похоже, файл jar org.spongycastle.util сам содержит дубликат записи. Я видел эту проблему в файле xmlbean jar. Android, однако, не любит дублировать запись. Один из способов обойти это - загрузить этот конкретный файл jar и удалить одну из повторяющихся записей и добавить измененную банку в папку libs. Кроме того, вам необходимо исключить его из соответствующей зависимости от компиляции, с которой она связана. Вам нужно будет протестировать, чтобы убедиться, что удаление одного из дубликатов ничего не сломает. Если содержимое двух повторяющихся классов эквивалентно, то удаление одного из дубликатов не приведет к каким-либо последствиям.

Смежные вопросы