我需要在多个项目中使用外部项目(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)
答案 0 :(得分:4)
事实证明,如果build.gradle的值为ResuableProject
,那么您可以添加apply plugin: 'android'
但不能使用其来源,即项目的类型是应用程序。
我将其更改为apply plugin: 'android-library'
,即它必须是一个库,现在一切正常。