android - 库模块依赖与 App 模块依赖
问题描述
到目前为止,我已经制作了许多小型项目,例如单屏、测验应用程序、音乐结构等。作为一个新手,我一直在寻找项目的可重用性,因为有许多包在所有项目中都是相同的,例如 utils 等。 . 所以,我从下面的链接了解了 Android 库模块:
https://developer.android.com/studio/projects/android-library
我的问题是,即使在库模块中添加了依赖项,为什么我还必须在应用程序模块中添加相同的依赖项?例如,我的库模块正在使用 edmodo android 图像裁剪器(https://github.com/ArthurHub/Android-Image-Cropper)进行图像裁剪,为了在 app 模块中使用它,我必须在 app 模块中添加它的依赖项还!为什么?可以改进吗?感谢期待!
解决方案
为什么我还必须在 app 模块中添加相同的依赖项?
这是因为依赖项没有随您的.aar/.jar
文件一起提供。编译时绑定存在,由于您的库编译,但为了具有运行时实现,您需要将这些库包含在您的应用程序模块中。
可以改进吗?
可以这样做,但理想情况下,您应该让 app 模块提供依赖项。这是因为,如果两个库都附带了它们的依赖关系,它们都可以使用,那么公共依赖关系将被复制并相互重叠。这将导致构建问题。
如果您仍想继续(可能是您有专有的内部模块),那么您可以提取依赖库 jar 并将其包含在libs
目录中,或者将其与依赖项一起发布到 maven 中。
推荐阅读
- internet-explorer - 关闭应用程序窗口后意外停止运行
- apache-spark - Spark 无法读取具有不同版本架构的数据文件的 Hive ORC 表
- c# - 可以即时更新本地化吗?
- typescript - 以编程方式添加或删除 css 类时 Nativescript UI 未更新
- python - 如何在熊猫的一列中处理混合日期类型?
- python - Jupyter and conda: error when cloning environment
- elasticsearch - Elasticsearch support both case sensitive & insensitive
- microsoft-edge - Chromium Edge:- 如何显示再次打开自定义协议处理程序时出现的警告
- python - Pyplot Errorbars with different x- and y-error
- html - Unable to get the CSS hover animation to work