我的Android项目中有多个模块。如果我使用:app:assembleRelease发布apk,则可以,但是当我使用assembleRelease发布apk时,则显示错误。我知道我的代码中有错误,但这不是我要问的问题。我只想知道assembleRelease:app:assembleRelease有什么区别

最佳答案

在“多模块Gradle”项目中,如果未明确引用模块,则默认情况下,Gradle尝试从根项目的“任务”图查找该任务。

例如:如果您有多个名为 module1 module2 的模块,则在评估阶段,Gradle会将每个模块的任务分配在各自的扩展中。意味着您现在必须将其称为 :module1:task1 :module2:task2

这就是assembleRelease不起作用和:app:assembleRelease起作用的原因。

您可以通过在Android Studio / IntelliJ IDEA中打开“成绩”窗口来检查任务图。

如果查看下面的图像,则可以看到“任务”节点,这些节点在根项目中具有可用的常见任务。

虽然还有其他与模块相关的任务,可以在扩展它自己的节点内找到。

android - :app:assembleRelease和assembleRelease之间的区别-LMLPHP

请注意,:在android中,您可以有多个模块,但是默认模块始终缩写为app模块,而其他模块则被视为库模块,按上面图像中各个模块的名称(如base,db,domain等)缩写。我猜你不能在同一个项目中有多个应用模块。

08-05 09:08