将存储库作为子模块添加到我的 android 项目中,并使我的修改与主存储库保持同步

Poo*_*ngh 1 git android github repository git-submodules

我在向 Android 项目添加子模块时遇到问题。我已经尝试了在线提供的所有教程和一些解决方案,但没有一个确切说明如何添加子模块并使您的提交与主存储库同步。

我尝试过的解决方案:

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

要解决此问题:implementation project(':Tools_Demo_App')在 build.gradle 依赖项中添加了它,然后它显示了此错误。 错误

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

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

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

我实际上想要做什么:

主要项目:子模块:演示我想保留演示存储库作为基本应用程序来保留我的所有设计、库和模板,以便我可以将此子模块添加到我的所有项目中,然后从这里选择可重用的东西,而不是每次都重写所有内容。

Poo*_*ngh 9

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

终端

git submodule add github-link-to-submodule-x
git submodule update --init --recursive
Run Code Online (Sandbox Code Playgroud)

设置.gradle

include ':app'
rootProject.name = "TutorialKotlin"
include ':Tools_Demo_App'
project(':Tools_Demo_App').projectDir = new File('Tools_Demo_App/app')
Run Code Online (Sandbox Code Playgroud)

构建.gradle

 implementation project(':Tools_Demo_App')
Run Code Online (Sandbox Code Playgroud)

库模块的build.gradle

改变

apply plugin: 'com.android.application'
Run Code Online (Sandbox Code Playgroud)

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

消除applicationId

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

同步项目并且工作正常。

  • 这不是“git add submodule github-link-to-submodule-x”,而是“git submodule add github-link-to-submodule-x”,但除此之外,这是很好的说明! (3认同)