android - :app:assembleRelease and assembleRelease之间的区别

标签 android gradle gradlew

我的 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 节点,其中包含在根项目中可用的常见任务。

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

Gradle Task Graph

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

关于android - :app:assembleRelease and assembleRelease之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60990805/

相关文章:

android - 从 ListView 中获取文本

java - 我怎么知道 onPause() 是因为方向改变而不是 back/home 而被调用?

maven - 项目结构应该如何使用带有 gradle 或 maven 的微服务?

ios - 无法使用 Gradle 创建构建

maven - 如何使用Gradle实现Maven基本pom文件概念?

gradle - 关于gradle和gradlew的时间关系的一些问题

java - 如何去除gradle中的重复依赖?

android - 操作栏 Sherlock 操作项 View

java - Android 中用于自定义布局的 ArrayAdapter?

jenkins - 如何在 Jenkins 中更改 Invoke Gradle 脚本的默认包装器位置