Android Studio:具有共同库项目的多个应用程序

时间:2016-03-17 13:14:14

标签: android android-studio

我从Eclipse迁移到Android Studio,我已经做了一些阅读。我理解Eclipse工作区/项目与AS项目/模块的理论,但我很难弄清楚如何最好地重现我的Eclipse设置,或者它甚至是Android Studio希望我做什么

我有两个申请。为了便于说明,我们将其称为 EmployeeApp CustomerApp 。这些是各种意义上的不同应用 - 不同的包装,完全不同的来源,一切;据我所知,它们当然不仅仅是产品口味。

然而,他们都使用了大量的库模块,并且在大多数情况下,他们使用相同的库模块。他们也在同一个仓库中生活在相同的结构中。

我在迁移之前为这两个应用编写了单独的Gradle脚本,这是我用来导入它们的原因。通过这种方式,我可以导入顶级应用程序,最终在两个窗口中有两个项目,如下所示:

Android Studio project view 1 Android Studio project view 2 http://i63.tinypic.com/vrv5g4.png

这样做的问题在于,如果有人更改了图书馆项目,他们至少需要知道它是否打破了依赖它的两个应用程序,所以理想情况下我希望它们在同一个视图中。 / p>

第一个问题:现在是2016年,Android Studio是否允许我这样做,是否被视为预期用途?

如果是这样的话:我该怎么办?我尝试使用“导入模块”导入其中一个缺失的部分到另一个中。功能,但它显然做得很少。

1 个答案:

答案 0 :(得分:0)

我想我已经解决了这个问题。只有时间才能证明它在实践中是否真的是一个合适的解决方案。

问题源于我基本上创建了两个独立的Gradle脚本,即:

Android\EmployeeApp\build.gradle
Android\CustomerApp\build.gradle
然而,使这项工作成为顶级构建的原因,即:

Android\build.gradle
Android\EmployeeApp\build.gradle
Android\CustomerApp\build.gradle

这并不多:

dependencies {
        project(":EmployeeApp")
        project(":CustomerApp")
}

然后build.settings只为每个项目中包含其中一对:

include ':Services'
project(':Services').projectDir = new File(settingsDir, './Services')

然后我导入了顶级build.gradle,几乎一切都很顺利。

我确实需要做更多事情,例如将repositoriesallProjects移到顶层,但这将特定于您拥有的任何内容。