Android Studio外部库项目

5
我正在从Eclipse转向 Android Studio,以下是我在 Eclipse 中的设置:
我有几个Android应用程序项目,依赖于多个库项目(一些共享),全部位于一个工作区中。在 Android Studio 中,我开始为每个应用程序创建一个项目,但很快意识到我必须将使用它们的每个项目中的库项目作为模块。这意味着复制库项目并将它们包含在每个应用程序中,这非常冗余,并需要维护多个库的副本。
因此,我转而将所有应用程序和库作为同一项目中的模块。这对于构建有效,但会产生其他问题,例如版本控制问题,因为每个模块都存在于单独的版本控制存储库中。
最干净的设置方式是什么?真正的问题是,我可以在AS中拥有共享相同外部库项目的不同项目吗?

在Gradle构建系统中,您无需在项目内下载所有库模块。您可以使用Maven依赖项将它们包含在您的项目中进行编译。 - Piyush Agarwal
1个回答

3

注意

随着Android Studio 0.5.0的发布,这个答案已经过时,但我将在下面留下它以供参考。有关更加最新的指令,请参见如何在多个项目中共享单个库源码


在Android Studio中,很难拥有共享库项目,因为目前所有模块必须存储在同一根文件夹下,您似乎在尝试通过制作一个包含所有内容的大型项目来解决问题时发现了这一点。我们正在努力解除这个限制。

目前最好的方法是将库模块分成独立的项目,并将它们发布到本地Maven仓库,使依赖项目从该仓库中获取它们。不幸的是,这意味着您不能从单个项目的上下文中处理应用程序+库模块源代码。更大的缺点是那些库模块的源代码附件尚未起作用,因此如果您试图调试应用程序,则会遇到进入库中代码的困难。

我知道这不是一个很好的答案,但在Android Studio的演变阶段,这可能是我们能做到的最好的了。我们知道您的需求是相当常见的,我们优先支持它。


感谢您的回答。我想Maven工件会起作用,但我会失去同时访问相关项目的便利性。在使用我的设置将相关“项目”作为同一项目中的模块几天后,我发现这对于我的当前需求已经足够了,除了版本控制问题外,我没有遇到任何重大问题。在这种情况下,Eclipse工作区= AS项目,Eclipse项目= AS模块。 - Inn0vative1
我们正在等待你们解决这个问题。我们正在尝试使用git-submodule来克服它。关于git操作,这并不是非常直接的。 - SXC
嗨,Scott,您们最终是否会允许应用程序项目引用位于应用程序项目根文件夹之外的共享库项目?你们有预计的时间吗? - SXC
您可以在https://code.google.com/p/android/issues/detail?id=56367上跟踪其进展。正如您从评论中所看到的,支持它的更改正在进行检查,并应出现在下一个版本中。 - Scott Barta
这种情况在 Android Studio 0.5 中有没有得到改善? - Neoh
是的,我回答了你的另一个问题,并在这里编辑了我的答案以链接到它。 - Scott Barta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接