我的 android 项目中有多个模块。如果我使用 :app:assembleRelease
发布 apk它可以工作,但是当我使用 assembleRelease
制作发布 apk 时它一直显示错误。我知道我的代码中有错误,但这不是我要质疑的。我只想知道 assembleRelease
和有什么区别和 :app:assembleRelease
最佳答案
在多模块 Gradle 项目中,如果您没有明确引用您的模块,则默认情况下 Gradle 会尝试从根项目的任务图中查找该任务。
例如:如果您有多个名为 的模块模块1 & 模块2 ,然后在评估阶段,Gradle 将每个模块的任务分配到它们自己的扩展中。这意味着您现在必须将其称为 :module1:task1
& :module2:task2
这就是为什么 assembleRelease
不起作用 & :app:assembleRelease
作品。
您可以通过在 Android Studio/IntelliJ IDEA 中打开“Gradle”窗口来检查任务图。
如果您查看下图,您可以看到 Tasks 节点,其中包含在根项目中可用的常见任务。
虽然在扩展它自己的节点中可以找到其他与模块相关的任务。
请注意 :在android中,您可以拥有多个模块,但您的默认模块始终缩写为app模块,而其他模块则被视为库模块,这些模块由上图中的单个模块的名称(如base、db、domain等)缩写(你不能我猜在同一个项目中有多个应用程序模块)。
关于android - :app:assembleRelease and assembleRelease之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60990805/