2

我正在努力弄清楚如何以一种使它们可用于多个项目的方式将库项目导入 Android Studio。新构建系统的文档意味着您需要将库项目导入您正在处理的项目的根目录中:

Gradle 项目还可以通过使用多项目设置依赖于其他 gradle 项目。多项目设置通常通过将所有项目作为给定根项目的子文件夹来工作(http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-project -设置

这是有问题的,因为正如我上面提到的,我希望所有当前和未来的项目都可以访问经常使用的库。例如,我目前正在尝试将 Volley 集成到一个新项目中以对其进行评估,并假设我将来希望在多个其他项目中使用它。我将它克隆到我的“${PROJECT_ROOT}/”文件夹,这是我创建测试项目的同一级别,给了我:

${PROJECT_ROOT}/TestProject/Test
${PROJECT_ROOT}/volley

在尝试以各种方式设置我的项目的 build.gradle 文件后,我设法使应用程序编译的唯一方法是将 Volley 移到 TestProject 的“主”项目中,给我:

${PROJECT_ROOT}/TestProject/Test
${PROJECT_ROOT}/TestProject/volley

这不仅会阻止我在不属于 TestProject 的其他项目中使用 Volley,而无需再次复制或克隆它,而且这意味着 git 希望我将其添加到我在根目录下建立的存储库中测试项目。

如何在我的 Android Studio 项目中引用库项目而不将它们包含在项目本身中?

4

1 回答 1

2

您不能将 git 与子模块一起使用吗?例如,在您的 .gitmodules 文件中,您可以添加以下内容:

[submodule "volley"]
path = volley
url = https://path/to/volley/repository 

您可以将 url 设置为 Volley 的官方存储库,或者您自己的内部版本的 volley。其他项目可以以相同的方式设置并指向同一个 volley 存储库。

我认为这样,其他用户可以调用git clone,所有依赖项目都将下载到主项目文件夹中,他们不必担心单独下载库项目。

不过,对于 Volley,我只需将其编译为 JAR 文件并将其粘贴到主项目的 /libs 文件夹中即可。也就是说,如果您不需要修改其来源。

[更新] 对于不需要修改源码的库项目,可以尝试使用Android Studio编译成AAR文件进行分享。AAR 文件类似于 Android 的 JAR 文件,因此您可以将它们添加到 /lib 源文件夹,或者将它们发布到本地/内联网 maven 存储库。如果您选择 maven 路由,请在 build.gradle 中添加您的本地/内部网存储库,并引用您已发布的库项目。

希望将来有更多的图书馆项目所有者将他们的项目构建成 AAR 文件并将它们发布到 Maven 中央存储库,这样我们就可以直接从 build.gradle 文件中引用它们。

于 2013-08-05T23:58:15.547 回答