android - :app:assembleRelease 和 assembleRelease 之间的区别
问题描述
我的 android 项目中有多个模块。如果我用它制作了一个发布 apk,:app:assembleRelease
但是当我用它制作一个发布 apk 时,assembleRelease
它一直显示错误。我知道我的代码中有错误,但这不是我要质疑的。我只想知道assembleRelease
和有什么区别:app:assembleRelease
解决方案
在多模块 Gradle 项目中,如果您没有明确引用您的模块,则默认情况下 Gradle 会尝试从根项目的任务图中查找该任务。
例如:如果您有多个名为module1和module2的模块,那么在评估阶段 Gradle 会将每个模块的任务分配到它们自己的扩展中。这意味着您现在必须将其称为:module1:task1
&:module2:task2
这就是为什么assembleRelease
不起作用和:app:assembleRelease
起作用的原因。
您可以通过在 Android Studio/IntelliJ IDEA 中打开“Gradle”窗口来检查任务图。
如果您查看下图,您可以看到 Tasks 节点,其中包含在根项目中可用的常见任务。
虽然在扩展它自己的节点中可以找到其他与模块相关的任务。
请注意:在 android 中,您可以拥有多个模块,但您的默认模块始终缩写为 app 模块,而其他模块则被视为库模块,这些模块由上图中的单个模块的名称(如 base、db、domain 等)缩写(您可以我猜在同一个项目中没有多个应用程序模块)。
推荐阅读
- python-3.x - 从文件夹中导入 file.py 以及其他子文件夹
- reactjs - 为什么我的数据获取自定义钩子会被多次调用?
- android - 如果我使用嵌套的 firebase 引用,回收站视图不起作用
- amazon-web-services - Amazon Lex 默认版本问题
- c++ - WIC HEIF HEIC 图像解码 C++
- javascript - Azure 语音 SDK:来自 javascript 中的 GetUserMedia 的 createPushStream
- python - 如何在一个图中绘制多个 numpy 数组?
- rust - 访问 impl 模块时获取“使用未声明的类型或模块”
- firebase - 基于外键从firebase获取数据
- ios - iOS 14 UICollectionView:当部分布局从水平变为垂直时,setCollectionViewLayout 动画被破坏