:app:assembleRelease 和 assembleRelease 之间的区别
Difference between :app:assembleRelease and assembleRelease
我的 android 项目中有多个模块。如果我用 :app:assembleRelease
制作一个发布 apk,它可以工作,但是当我用 assembleRelease
制作一个发布 apk 时,它一直显示错误。我知道我的代码中有错误,但这不是我要质疑的。我只想知道assembleRelease
和:app:assembleRelease
有什么区别
:app:assembleRelease
和assembleRelease
的区别在于assembleRelease
执行每个模块的assembleRelease
任务,而:app:assembleRelease
执行assembleRelease
app
模块中的任务。
显然,两者的任务图均已正确填充,这意味着 Android 的 :app:assembleRelease
取决于 :app
中用作依赖项的其他模块的 assembleRelease
.
在多模块 Gradle 项目中,如果您没有 明确地 引用您的模块,那么 Gradle 默认情况下会尝试从根目录中找到该任务项目的任务图。
例如:如果你有多个模块命名为 module1 & module2 ,然后在评估阶段 Gradle 将每个模块的任务分配到它们自己的扩展中。这意味着您现在必须将其称为 :module1:task1
& :module2:task2
这就是为什么 assembleRelease
不起作用而 :app:assembleRelease
起作用的原因。
您可以在Android Studio/IntelliJ IDEA 中打开'Gradle' window 查看任务图表。
如果您查看下图,您会看到 Tasks 节点,其中包含根项目中可用的常见任务。
虽然还有其他模块相关的任务可以在扩展它自己的节点中找到。
注意:在android中你可以有多个模块但是你的默认模块总是缩写为app模块而其他被认为是库模块,它们由上图中单个模块的名称缩写,如 base、db、domain 等 (我猜你不能在同一个项目中有多个应用程序模块).
我的 android 项目中有多个模块。如果我用 :app:assembleRelease
制作一个发布 apk,它可以工作,但是当我用 assembleRelease
制作一个发布 apk 时,它一直显示错误。我知道我的代码中有错误,但这不是我要质疑的。我只想知道assembleRelease
和:app:assembleRelease
:app:assembleRelease
和assembleRelease
的区别在于assembleRelease
执行每个模块的assembleRelease
任务,而:app:assembleRelease
执行assembleRelease
app
模块中的任务。
显然,两者的任务图均已正确填充,这意味着 Android 的 :app:assembleRelease
取决于 :app
中用作依赖项的其他模块的 assembleRelease
.
在多模块 Gradle 项目中,如果您没有 明确地 引用您的模块,那么 Gradle 默认情况下会尝试从根目录中找到该任务项目的任务图。
例如:如果你有多个模块命名为 module1 & module2 ,然后在评估阶段 Gradle 将每个模块的任务分配到它们自己的扩展中。这意味着您现在必须将其称为 :module1:task1
& :module2:task2
这就是为什么 assembleRelease
不起作用而 :app:assembleRelease
起作用的原因。
您可以在Android Studio/IntelliJ IDEA 中打开'Gradle' window 查看任务图表。
如果您查看下图,您会看到 Tasks 节点,其中包含根项目中可用的常见任务。
虽然还有其他模块相关的任务可以在扩展它自己的节点中找到。
注意:在android中你可以有多个模块但是你的默认模块总是缩写为app模块而其他被认为是库模块,它们由上图中单个模块的名称缩写,如 base、db、domain 等 (我猜你不能在同一个项目中有多个应用程序模块).