android - Android 库难以保持为依赖项
问题描述
我有几个不同的应用程序,我想在 Android Studio 中创建一个模块/库,以便在我的所有应用程序中重用一些活动、布局和可绘制对象,例如底层框架。
我只能在应用程序项目中创建一个模块,而不是作为一个单独的项目。我将此文件夹从应用程序路径中删除到此应用程序之外的另一个文件夹(我想要一个单独的 Git 存储库)。如果我在我的不同应用程序项目中导入这个模块,它会复制这个模块。因此,我在模块中当前应用程序项目中所做的更改不会影响我其他应用程序项目中的模块。我无法想象我每次都必须手动合并它。不导入怎么办?此外,如果我使用 Android Studio 将此模块作为项目打开,我无法构建它,因为 apply plugin: com.android.library
.
我浏览了这个页面和一些谷歌搜索,但我仍然感到困惑:https ://developer.android.com/studio/projects/android-library
- 怎么可能有一个在许多应用程序中可重用(活动、布局)并拥有自己的存储库的模块或库?
- 在一个项目中拥有 Android 库或模块并作为 .AAR 导入任何其他项目的唯一可能性是什么?
解决方案
从 android studio 项目终端添加 git 子模块
git submodule add https://XXX@bitbucket.org/YYY/ZZZ.git
确保子模块保存位置文件夹名称与原始库项目名称不同,否则您可能会得到
- 冲突。选择“导入 Gradle 项目”选择子模块文件夹,给出实际的子模块项目名称
现在你在 git 中有一个应用程序项目,它使用了一个作为 git 子模块添加到其中的库。现在您可以在应用程序和库上并行开发。最好为一个应用程序保留一个单独的库分支,以免与另一个应用程序使用冲突,如果库代码更改可以在其他项目中使用,您也可以向库的主分支发出 PR 请求。
如需更多参考,请点击此链接
https://medium.com/@deepakpk/how-to-add-a-git-android-library-project-as-a-sub-module-c713a653ab1f
推荐阅读
- vbscript - Function 和 Sub 在 VBScript 中如何工作?
- ruby-on-rails - ActiveRecord:是否可以与范围建立连接关系
- python - 如何做梯度下降问题(机器学习)?
- java - 数组输入数字 0-2 并输出对应的字母 a,b,c
- php - php将值从任何数字更改为0
- c - 函数“SetConsoleScreenBufferInfoEx”的隐式声明
- swift - 如何防止 MKPolygons 在 MKMapView 中重叠
- python - MIME 类型检查已启用
- c# - 如何在 SharpDX 中使用 ID2D1SpriteBatch?
- java - 如何使用 servlet 从 oracle 数据库下载 pdf 文件而不损坏文件?