【问题标题】:Adding a repository to my android project as a submodule and keeping my modifications in it in sync with main repo将存储库作为子模块添加到我的 android 项目中,并使我在其中的修改与主存储库保持同步
【发布时间】:2021-09-25 21:39:09
【问题描述】:

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

我尝试过的解决方案:

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

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

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

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

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

我真正想做的事:

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

【问题讨论】:

    标签: android git github repository git-submodules


    【解决方案1】:

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

    终端

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

    settings.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

    中没有启动器活动

    同步项目,它工作正常。

    【讨论】:

    • 老兄,终于有人给出了正确的解决方案,非常感谢!! .projectDir = new File('Tools_Demo_App/app') 这行是我的关键。
    猜你喜欢
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多