Android Studio:将外部项目设置为模块

时间:2014-03-27 06:15:40

标签: android gradle android-studio

我需要在多个项目中使用外部项目(ResuableProject)作为模块(其中一个项目是ProjectOne)。到目前为止我在这里所做的是:

在ProjectOne的settings.gradle中添加了以下内容

include ':ProjectOne', ':ResuableProject'
project(':ResuableProject').projectDir = new File(settingsDir, '../ResuableProject/module')

在build.gradle中添加了以下内容

dependencies {
    compile project(':ResuableProject')
}

在没有任何错误的gradle同步之后,在Project Explorer中包含了模块,但是当我使用来自ResuableProject的任何类时,它给了我一个错误,在我点击类名之前找不到类,它给了我add dependency on ResuableProject的选项。当我选择该选项时,该类是可访问的,似乎一切正常。 但是,当我构建项目并尝试运行时,它给了我:

Error:Execution failed for task ':ProjectOne:compileDevDebugJava'.
> Compilation failed; see the compiler error output for details.
Error:(10, 30) error: package <packagename of ResuableProject> does not exist

我是否遗漏了某些内容,或者我是否必须在ProjectOne中包含ResuableProject的源目录,如果是,该怎么做?

还有更好的方法在多个应用中使用一个通用项目吗? (不是jar或maven因为我需要在每个项目中包含源代码,并且公共项目将在一个单独的git repo中托管)

以前我在Eclipse(一个常见的Library项目)中使用这种方法,并将其包含在多个应用程序中。

更新:添加文件系统结构

workspace
----ResuableProject (Android Common stuff)
--------.git
--------module
----ProjectOne (Android App One)
--------.git
--------ProjectOne (module)
------------build.gradle
--------settings.gradle
----ProjectOne (Android App Two)
--------.git
--------ProjectOne (module)

1 个答案:

答案 0 :(得分:4)

事实证明,如果build.gradle的值为ResuableProject,那么您可以添加apply plugin: 'android'但不能使用其来源,即项目的类型是应用程序。

我将其更改为apply plugin: 'android-library',即它必须是一个库,现在一切正常。