Android Studio,如何将我自己的git存储库添加为库项目(子模块)?

标签 android eclipse git android-studio build.gradle

我是 Android Studio 的新手,现在我已经创建了一个项目并在其中添加了一个模块作为库项目,但是当我将项目推送到 Git 时,库项目也会添加到存储库中,而不是添加到其他新的 Git 存储库中.

我只是想知道如何在 Android Studio 中创建一个子模块,就像我们在 Eclipse 中通过 egit 插件所做的那样,以及如何将其推送到一个全新的 Git 存储库,实际上这个子模块实际上是我的库项目.

最佳答案

我也遇到过同样的情况,我必须并行开发库和应用程序。 为此,您可以使用 android 库项目作为应用程序项目的 git 子模块,这样您就可以管理应用程序项目和库项目。所以这是我的解决方案:

第 1 步:创建 Android 库项目。

与创建普通应用程序项目类似。只需浏览此谷歌文档:https://developer.android.com/studio/projects/android-library.html

第 2 步:在 git (GitHub/BitBucket) 中为库项目创建存储库

第3步:将库代码添加到版本控制系统(VCS)

android studio adding codes to VCS

第 4 步:将库代码推送到 git 存储库

pushing code to git

第 5 步:现在创建您的 Android 应用程序项目

第 6 步:将项目添加到版本控制系统 (VCS)

第 7 步:从底部版本控制菜单中,将所有未版本控制的文件添加到 VCS

adding un-versioned files to vcs

第 8 步:从 android studio 项目终端使用命令添加 git 子模块

git submodule add HHHH://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b4ecececf4d6ddc0d6c1d7dfd1c09adbc6d3" rel="noreferrer noopener nofollow">[email protected]</a>/YYY/ZZZ.git

make sure the sub module save location folder name is different than the original library project name, else you might get conflicts.

第 9 步:您将收到一条消息“检测到未注册的 vcs root”。点击添加根目录

un-versioned vcs root detected popup

现在你可以在android studio右下角看到多个git仓库

multiple git selection available

第10步:转到文件菜单 — 项目结构

第11步:点击左上角的“+”

adding new module

第 12 步:选择“导入 Gradle 项目”

importing library project

第13步:选择子模块文件夹

第14步:给出实际的子模块项目名称

enter image description here

第 15 步:同步

第16步:现在在应用程序项目中添加builg.gradle文件

compile project(‘:lib-name’)

在依赖项部分

第 17 步:gradle 同步和构建项目

现在您在 git 中有一个应用程序项目,它使用一个库,该库作为 git 中的子模块添加到其中。现在您可以并行地在应用程序和库上进行开发。最好为应用程序保留一个单独的库分支,以免与其他应用程序使用发生冲突,如果库代码更改可以在其他项目中使用,您也可以向库的主分支提出 PR 请求。

快乐编码:)

我已将其发布为我的博客: https://medium.com/@deepakpk/how-to-add-a-git-android-library-project-as-a-sub-module-c713a653ab1f#.mt6dlng5n

关于Android Studio,如何将我自己的git存储库添加为库项目(子模块)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27717728/

相关文章:

android - 如何保存 YUV_420_888 图像?

android - 如何使用 Cydia Substrate 在 Android 中 Hook C/C++ 方法

java - Eclipse 中未暂存更改,但 git 中没有更改

git - 为什么我无法为 Git 配置外部 difftool 或 mergetool?

git - 错误 : src refspec does not match any

android - Facebook ,安卓 java.lang.IllegalStateException : Cannot execute task: the task is already running

android - 在另一个 Activity 中检索共享首选项

eclipse - 如何让新编辑器在另一个屏幕中打开?

java - 无法让 Maven 与 Nexus OSS 一起使用

eclipse - 当我在 eclipse 中运行时,Tomcat 出现问题