Начиная с Android Gradle Plugin 8.4, если проект библиотеки Android минимизирован, сжатые классы программы будут опубликованы для публикации между проектами. Это означает, что если приложение зависит от сокращенная версия подпроектов библиотеки Android, APK будет включать сокращенные классы библиотеки Android. Возможно, вам придется настроить правила хранения библиотеки на случай, если в APK отсутствуют классы.
Если вы создаете и публикуете AAR, локальные jar-файлы, от которых зависит ваша библиотека, будут включены в AAR без сжатия, что означает, что на них не будет работать программа сжатия кода.
Чтобы вернуться к предыдущему поведению, установите android.disableMinifyLocalDependencyForLibraries в файле gradle.properties и зарегистрируйте ошибку. . В будущих версиях AGP этот флаг будет удален.
Для меня это немного загадочно.
Может. кто-нибудь объяснит мне это?
Предположим, что у меня есть многомодульное приложение со следующей зависимостью:
- модуль приложения
- модуль представления (модуль Android)
- модуль домена (модуль Kotlin)
- модуль данных (модуль Android)
Презентация -> домен тогда они будут минимизированы ДО модуля приложения, и модуль приложения будет включать эти минимизированные?
Итак, если я установлю isMinifyEnabled = false< /code> в модулях моей библиотеки, но сохранить isMinifyEnabled = true в модуле приложения. Означает ли это, что они (модули библиотеки) по-прежнему минимизируются и запутываются?
Или мне нужно добавить правила и аннотацию @keep почти во все, что я использую внутри модуля приложения из модуля библиотеки?
А если я просто отмечу все с помощью @keep, не потеряет ли запутывание своего смысла?
Подробнее здесь: https://stackoverflow.com/questions/787 ... tecture-r8