首页 > 解决方案 > 将存储库作为子模块添加到我的 android 项目中,并使我在其中的修改与主存储库保持同步

问题描述

我在向我的 android 项目添加子模块时遇到问题。我已经尝试了所有在线可用的教程和一些解决方案,但没有一个确切地说明如何添加子模块并保持您对它的提交与主仓库同步。

我尝试过的解决方案:

  1. Git submodule add repo-link ISSUE:它将子模块添加到我的项目中,但是当我单击它以在子模块中创建新活动时,它没有显示创建活动的选项。 在添加的子模块中创建活动

解决这个问题:我添加implementation project(':Tools_Demo_App')了我的 build.gradle 依赖项,然后它显示了这个错误。 错误

然后,如果我添加include ':Tools_Demo_App'到我的 settings.gradle。这个错误消失了。无法添加活动 但是,我仍然无法添加活动。它说“源根目录之外的Java文件”。

  1. 我尝试的另一个解决方案是在项目结构中导入一个模块添加模块 假设在我克隆我想要添加为子模块的存储库之前,现在我将它作为模块添加到我的项目中。它解决了无法添加活动的问题。但是在这里,问题是它没有作为子模块添加,所以我所做的所有更改都不会反映在我的主仓库中。

无论我做什么,到目前为止,在线可用的教程都没有帮助。如果您使用过子模块并且能够使用它们使所有内容与主仓库保持同步,请提出一些建议。

我实际上想要做什么:

主项目:一个子模块:demo 我想将 demo repo 作为一个基础应用程序来保存我所有的设计、库和模板,这样我就可以将这个子模块添加到我的所有项目中,并从这里挑选可重用的东西,而不是每次都重写所有东西.

标签: androidgitgithubrepositorygit-submodules

解决方案


我想出了一个理想的解决方案。 我的项目名称:子模块名称:x

终端

git add submodule github-link-to-submodule-x
git submodule update --init --recursive

设置.gradle

include ':app'
rootProject.name = "TutorialKotlin"
include ':Tools_Demo_App'
project(':Tools_Demo_App').projectDir = new File('Tools_Demo_App/app')

构建.gradle

 implementation project(':Tools_Demo_App')

库模块的 build.gradle

改变

apply plugin: 'com.android.application'

应用插件:'com.android.library'

消除applicationId

确保AndroidManifest.xml中没有启动器活动

同步项目,它工作正常。


推荐阅读