:app:assembleRelease与assembleRelease之间的差异

问题描述 投票:0回答:1

我的android项目中有多个模块。如果我使用:app:assembleRelease进行发布apk,但是当我使用assembleRelease进行发布apk时,它仍然显示错误。我知道我的代码中有错误,但这不是我要问的问题。我只想知道assembleRelease:app:assembleRelease

有什么区别
android gradle gradlew
1个回答
0
投票

:app:assembleReleaseassembleRelease之间的区别在于assembleRelease执行每个模块的assembleRelease任务,而:app:assembleRelease执行assembleRelease模块中的app任务。

显然,这两个任务图均正确填充,这意味着Android的:app:assembleRelease取决于在assembleRelease中用作依赖项的其他模块的:app


0
投票

在多模块Gradle项目中,如果您未引用模块显式,则默认情况下,Gradle尝试从根项目的Tasks图中找到该任务。

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

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


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

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

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

Gradle Task Graph

[[[注意]]:在android中,您可以有多个模块,但是默认模块始终缩写为app模块,而其他模块则被视为库模块,并以该单个模块的名称(如base,db)缩写,域等来自上图(我猜您在同一项目中不能有多个应用程序模块)

© www.soinside.com 2019 - 2024. All rights reserved.