Google Gradle Plugin Рекомендуемый способ настройки файлов Gradle для создания нескольких проектов имеет некоторые недостатки. Если у вас есть несколько проектов, зависящих от одного библиотечного проекта, в этом посте кратко объясняется рекомендуемая Google конфигурация, ее недостатки и рекомендуются другие способы настройки файлов Gradle для поддержка многопроектных настроек в Android Studio:
Альтернативная мультипроектная настройка для андроид студии
Другой путь:
Оказывается, есть лучший способ управлять несколькими проектами в Android Studio. Хитрость заключается в том, чтобы создавать отдельные проекты Android Studio для ваших библиотек и сообщать gradle, что модуль для библиотеки, от которой зависит ваше приложение, находится в каталоге проектов библиотеки. Если вы хотите использовать этот метод со структурой проекта, которую я описал выше, вы бы сделали следующее:
- Создать проект Android Studio для библиотеки StickyListHeaders
- Создать проект Android Studio для App2
- Создайте проект Android Studio для App1
- Сконфигурируйте App1 и App2 для сборки модулей в проекте StickyListHeaders.
4-й шаг - это сложная часть, поэтому это единственный шаг, который я опишу подробно. Вы можете ссылаться на модули, которые являются внешними по отношению к каталогу вашего проекта, добавив оператор проекта в файл settings.gradle и установив свойство projectDir для объекта ProjectDescriptor, который возвращается этим оператором проекта:
Код, который нужно вставить settings.gradle
:
include ':library1'
project(':library1').projectDir = new File('../StickyListHeader/library1')
Если вы сделали это правильно, вы заметите, что модули, на которые ссылается ваш проект, будут отображаться в навигаторе проекта, даже если эти модули являются внешними по отношению к каталогу проекта:
Это позволяет одновременно работать с библиотечным кодом и кодом приложения. Интеграция управления версиями также прекрасно работает, когда вы ссылаетесь на модули таким образом. Вы можете зафиксировать и отправить свои изменения в код библиотеки так же, как вы можете зафиксировать и отправить изменения в код своего приложения.
Этот способ настройки нескольких проектов позволяет избежать трудностей, которые мешают рекомендуемой конфигурации Google. Поскольку мы ссылаемся на модуль, который находится за пределами каталога проекта, нам не нужно делать дополнительные копии библиотечного модуля для каждого приложения, которое зависит от него, и мы можем создавать версии наших библиотек без всякой ерунды из подмодуля git.
К сожалению, этот другой способ настройки нескольких проектов очень трудно найти. Очевидно, это не то, что вы поймете, посмотрев руководство Google, и на данный момент нет способа настроить ваши проекты таким образом, используя пользовательский интерфейс Android Studio.