【问题标题】:Sync shared library projects/modules with its source将共享库项目/模块与其源同步
【发布时间】:2015-07-21 03:19:53
【问题描述】:

我正在学习构建可用于不同项目的 Android 共享库。我有几个关于这个主题的问题。在我进入问题之前,以下是我到目前为止所做的:

  • 创建库项目
  • 创建另一个应用程序项目并将上述库作为模块导入

我的问题是:

  • 库项目的代码是否自动与导入到应用程序项目中的代码同步?如何实现?
  • 如果没有,我还能做些什么来确保只需要更新一次共享库?

我正在使用 Android Studio IDE。

谢谢,

【问题讨论】:

    标签: android


    【解决方案1】:

    啊,是的,这在很多情况下都非常有用。您可以执行以下操作来实现此目的。

    假设您有两个项目 - MyApplicationMyLibraryDemo 包含库模块 libmodule,路径如下:

    我的应用程序 - "/../AndroidStudioProjects/MyApplication"

    MyLibraryDemo - "/../AndroidStudioProjects/MyLibraryDemo"

    libmodule - "/../AndroidStudioProjects/MyLibraryDemo/libmodule"

    假设您尝试在 MyApplication 中使用 libmodule。 然后,在MyApplication 项目的settings.gradle 中,执行此操作

    include ':app', ":libmodule"
    project(':libmodule').projectDir = new File(settingsDir, '../MyLibraryDemo/libmodule')
    

    您可能需要进行相关的更正,但我希望链接另一个模块的想法是明确的。

    一切顺利:)

    【讨论】:

    • 这就像一个魅力。两个模块是自动同步的,我想更新共享模块时不需要打开它们。
    • 这里的:app 文件夹和settingsDir 是什么
    • 有没有办法包含外部项目但不包含完整路径,以便它们也可以在其他 PC 上使用?
    • @Esteban 您可以使用答案中显示的另一个项目的相对路径
    • 对我来说子项目确实构建了,但是当我像这样声明它compile project(':libmodule')时,我不能将它作为依赖项Error:Unable to find module with Gradle path ':libmodule' (needed by module 'app'.) 引用
    【解决方案2】:

    从应用程序项目外部导入模块会在应用程序内部创建库的副本。如果您的系统支持,创建符号链接将只允许您拥有一份代码副本。

    否则,您可以将整个库项目移动到您的应用程序中,并将其添加到您的 settings.gradle。

    如果您希望为这两个项目拥有单独的 git 存储库,请考虑使用 git 子模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      相关资源
      最近更新 更多