Разница между: приложение: собрать, выпустить и собрать, выпустить - PullRequest
0 голосов
/ 02 апреля 2020

В моем проекте android есть несколько модулей. если я делаю релиз apk с :app:assembleRelease, он работает, но когда я делаю релиз apk с assembleRelease, он продолжает показывать ошибку. Я знаю, что в моем коде есть ошибка, но это не то, о чем я спрашиваю. Я просто хочу знать, в чем разница между assembleRelease и :app:assembleRelease

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

В многомодульном проекте Gradle, если вы не ссылаетесь на свой модуль явно , тогда Gradle по умолчанию пытается найти эту задачу из root графика задач проекта.

Например, : если у вас есть несколько модулей с именем module1 & module2 , то на этапе оценки Gradle распределяет задачи каждого модуля в своих собственных расширениях. Это означает, что теперь вы должны называть его :module1:task1 & :module2:task2

Это причина, по которой assembleRelease не работает и :app:assembleRelease работает.


Вы можете проверить график задач, открыв окно 'Gradle' в Android Studio / IntelliJ IDEA.

Если вы посмотрите на изображение ниже, вы увидите узел Задачи с общими задачи, доступные в root проекте.

Хотя есть другие связанные с модулем задачи, можно найти внутри расширения своего собственного узла.

Gradle Task Graph

Обратите внимание, что : в android вы можете иметь несколько модулей, но ваш модуль по умолчанию всегда сокращается как модуль приложения, в то время как другие считаются библиотечным модулем, который сокращается по имени этого человека модуль типа базы, базы данных, домена и др. c. от изображения выше (я думаю, вы не можете иметь несколько модулей приложения в одном проекте) .

1 голос
/ 02 апреля 2020

Разница между :app:assembleRelease и assembleRelease заключается в том, что assembleRelease выполняет задачу assembleRelease каждого модуля, в то время как :app:assembleRelease выполняет задачу assembleRelease в модуле app.

Очевидно, что граф задач заполняется правильно для обоих, это означает, что :app:assembleRelease для Android зависит от assembleRelease других модулей, используемых в качестве зависимостей в :app.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...