Как предотвратить дублирование зависимостей в Android Archive Library
Я знаю, что об этом может быть много ресурсов, но ни один из них, похоже, не решает мою проблему напрямую, так что я пойду
Я придерживался мнения, что библиотеки Android являются самостоятельными объектами, и поэтому содержимое одной библиотеки не должно влиять на работу другой. Вот почему у нас есть пространство имен и наименования пакетов, но, черт возьми, я не прав.
У меня есть два файла AAR, которые я импортировал в свой проект Android. AAR-файлы, а именно A и B, находятся в моей папке libs и добавляются в gradle как таковые
compile (name: 'A', ext: 'aar);
compile (name: 'B', ext: 'aar);
Все было прекрасно, пока я не попытался построить свой проект, а потом все пошло к черту.
Библиотека А имеет структуру
android.fpi
MtGpio.class
Так ли библиотека B
android.fpi
MtGpio.class
В идеале, это абсолютно разные библиотеки, и если они имеют одинаковые файлы или структуру, это не должно быть проблемой. Но это, я получил удар с:
app:transformClassesWithJarMergingForDebug
com.................................ZipException: duplicate entry: android/fpi/MtGpio.class
я прибегал ко всевозможным решениям, которые я читал о SO, но я все еще ищу решение, которое работает.
Что я пробовал?
MultiDexEnable true;
При добавлении второй библиотеки aar в файл grable я попытался исключить класс, как показано ниже, но все равно получаю ту же ошибку.
compile (name: 'B', ext: 'aar'){ exclude group: 'com.android.fpi', module: 'MtGpio' }
Несколько других решений, которые в основном связаны с support-v4 yada yada
Теперь я обращаюсь к виртуозам Android за помощью. Заранее спасибо.
1 ответ
Возможно, вы поможете одним из ответов в Разрешенных версиях для приложения (22.0.0) и тестового приложения (21.0.3)
попытаться установить
configurations.all {
resolutionStrategy {
force (name: 'A', ext: 'aar')
}
}
до dependencies