Есть ли достаточно простой способ для файла модуля build.gradle
указать, что определенные файлы из зависимости должны быть исключены? Меня особенно интересует исключение определенных ресурсов из AAR.
LeakCanary - интересная библиотека, помогающая отслеживать утечки памяти. Однако у него есть недокументированное требование compileSdkVersion
от 21 или выше. Хотя в большинстве проектов не должно быть проблем с этим, неприемлемо, чтобы библиотека требовала определенного compileSdkVersion
без уважительной причины. Команда разработчиков, возможно, заморозила их compileSdkVersion
как часть общей политики, чтобы изменять эти параметры только в качестве основных обновлений версии своего приложения или чего-то еще.
В этом случае, по крайней мере, для v1.3.1 LeakCanary требуется единственная причина compileSdkVersion
, AFAICT, потому что AAR имеет каталог res/values-v21/
, содержащий определение темы, которое наследуется от Theme.Material
. Эта тема используется диагностической деятельностью. Эта деятельность никогда не рассматривается конечными пользователями, только разработчиками в debug
builds. Честно говоря, то, что эта деятельность выглядит, по-тематически, на самом деле не имеет значения. Принуждение compileSdkVersion
из 21 только для того, чтобы эта диагностическая деятельность имела определенную тему, ИМХО, глупо.
Было бы неплохо, если бы в рамках директивы compile
мы могли бы сказать "эй, пожалуйста, пропустите res/values-v21/
из этого AAR, m'kay?". Поскольку тема -v21
просто предоставляет альтернативное определение темы, заданной в другом месте, отбрасывание темы -v21
не приведет к нарушению сборки или разрыва вещей во время выполнения, а просто даст нам Holo
-тематическую диагностическую деятельность.
Я не вижу, как этот ответ работает с зависимостями. Я также не уверен, если он завершен, и он, безусловно, не поддерживается. Это также действительно не квалифицируется как "простой" — Я бы не ожидал, что кто-то попытается удалить это в файле build.gradle
, чтобы заблокировать один файл из диагностической библиотеки, такой как LeakCanary.
Итак, есть ли что-то более простое, чем это работает с текущими выпусками Android-плагинов для Gradle?