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

问题描述 投票:0回答:2

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

我尝试过的解决方案:

  1. Git 子模块添加存储库链接 问题:它将子模块添加到我的项目中,但是当我单击它在子模块中创建新活动时,它没有显示创建活动的选项。 creating an activity in added submodule

要修复此问题:我在 build.gradle 依赖项中添加了

implementation project(':Tools_Demo_App')
,然后它显示了此错误。 error

然后,如果我将

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

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

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

我其实想做的事:

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

android git github repository git-submodules
2个回答
12
投票

我找到了理想的解决方案。 我的项目名称:A 子模块名称:x

终端

git submodule add 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')

build.gradle

 implementation project(':Tools_Demo_App')

库模块的build.gradle

改变

apply plugin: 'com.android.application'

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

删除

applicationId

确保 AndroidManifest.xml

中没有启动器活动

同步项目,它工作正常。


0
投票

当使用新的 Kotlin Gradle 脚本时,我所要做的就是:

settings.gradle.kts 文件中添加以下行:

include(":Tools_Demo_App")

将以下行添加到应用程序模块 build.gradle.kts 文件中的 dependency 下:

implementation(project(":Tools_Demo_App"))
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.