2014-01-10 70 views
2

我目前正在开发一个相当庞大的Android项目,该项目将包含多达5个不同的应用程序。这些中的每一个都将依赖于android库。使用Gradle在IDEA中设置项目

这可以通过将共享的android库构建到.jar文件中并从每个App引用它来轻松完成。但问题是这个项目真的处于早期阶段,因此库的代码将会像应用程序一样频繁地发生变化。总是让图书馆在不同的项目中开放,并且每次做出更改时都会建立它,这将是一件非常痛苦的事情。

  1. 第一个问题是如何设置一个工作区,您可以在该工作区中同时打开应用程序和库,并直接引用库。不用担心.jar文件。
  2. 如果不可能有任何想法?我不能成为第一个开始使用多个应用程序的大型Android项目的人。
+0

当你说“IDEA”你是指Android Studio吗?如果您使用的是Android Studio,通过使用应用程序和库模块创建项目可以很容易地完成。 – AndroidGuy

回答

2

在Android Studio中执行以下操作:

创建一个新项目。该项目将包含所有不同的APK项目和共享库。使用“文件 - >新建项目”或从AS的启动画面中选择新建项目。

在该项目中,为每个单独的APK创建一个新模块。使用“文件 - >新模块 - > Android应用程序”。我将这些类型的模块称为APK模块。

在该项目中,为共享库创建一个新模块。使用“文件 - >新建模块 - > Android库”来创建共享库。

通过修改“build.gradle”文件为共享库添加依赖关系,将共享库与每个APK模块相关联。您必须在每个APK模块中更改“build.gradle”文件。

dependencies { 
    compile project(':aaa') 
} 

确保将“aaa”替换为共享库的名称。

如果你喜欢,你可以有多个共享库。

现在可以在一个AndroidStudio项目下访问所有APK模块和共享库的代码。这种方法的另一个优点是可以将单个项目目录转换为组合APK模块和共享库的单个git仓库。

+0

这样做的窍门,非常感谢! :) – Hoffmann

0

我尝试了一段时间摆弄Android Studio和IntelliJ Idea,最好的选择是导出一切从eclipse。你可以按照下面的步骤(这是做..好象我通常不是一个好主意,但它的工作原理是肯定的:))

  1. 打开ADT或Eclipse和建立新的工作空间。

  2. 创建应用程序并将库项目作为库添加到这些应用程序。库项目需要再次导入到工作区(我没有详细说明,因为我认为你知道它)

  3. File > Export > Android > Generate Gradle Build Files这将生成整个工作区的gradle构建文件。然后这可以在IDEA中打开。

如果有帮助,请做回复。

+0

很高兴为快速回复队友!你是什​​么意思,我不得不再次导入库?我创建完库后是否必须删除库,然后再导入它? – Hoffmann

+0

我并不完全了解你。我假设你有一个库项目,其代码可以在开发过程中更改,并且您正在使用它来处理5个应用程序。所以我只是认为你可以将库添加到5个应用程序中(全部在eclipse中,我们应该再次将库导入到工作区),然后将整个工作区导出到gradle。 然后在IDEA中导入它时,它会在每次全部自动更改时再次编译该库。 – hammergun

1

首先,IntelliJ与Eclipse没有相同的工作区概念。简而言之,该模型如下所示:每个IntelliJ项目都有一个窗口。 IntelliJ项目有一个或多个IntelliJ模块,它们通过源代码链接。来自不同项目的模块不能通过源链接。

关于您的具体问题,我认为最简单的解决方案是拥有包含所有应用程序和库的单一源代码回购和(多项目)Gradle构建。这将转化为一个IntelliJ项目,每个应用程序/库都有一个IntelliJ模块,全部由源代码链接。

如果你绝对需要单独的Gradle构建,并且仍然希望在IDE中快速周转,那么据我所知,IntelliJ 13可以通过按下一个按钮将另一个Gradle构建添加到同一个IntelliJ项目中,也许Android Studio可以做同样的事情(不确定)。最后但并非最不重要的一点,请记住Android Studio和Gradle Android插件都是早期访问预览。

相关问题