Gradle Android项目依赖不起作用

时间:2014-06-05 07:24:12

标签: android android-gradle

我正在尝试从maven迁移到Gradle以获取Android项目,我面临以下问题: 我有三个项目,即

root
- projlib
   build.gradle
- projA
   build.gradle
- projB
   build.gradle
build.gradle
settings.gradle

基本上我想要实现的是projB依赖于projA和projlib。 projlib是一个lib文件夹,用于编译和生成lib(jar)文件。 projA是一个Android应用程序,projB是另一个需要在projA中引用代码的Android应用程序。现在我在projB build.gradle文件中添加的是

dependencies {
   compile project(':projlib')
   compile project(':projA')
}

所以说如果有一堂课 projlib中的FooProjLib和 projA中的FooProjA

然后在projB我可以做

FooProjLib foo = new FooProjLib

工作正常

但是当我做的时候

FooProjA foo = new FooProjA 

Gradle给我包projA不存在,我观察到的是两个依赖都解决但只有lib可以引用而不是apk。

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你无法完全按照自己的意愿行事。 projA无法构建应用程序(即APK),还有其他依赖于它的东西。 projB只能依赖于projA,如果projA是一个Android库,意味着在它的构建文件中你有这个声明:

apply plugin: 'android-library'

而不是

apply plugin: 'android'

当然,这意味着projA不会构建一个APK,而是会构建一个AAR。

如果projA也需要成为APK,那么您必须对事物进行重组,以使projB中需要的公共代码移出到共享库中。如果两个项目都相似,那么你可能只有一个模块,并使用项目风格来区分它们;如果没有更多的信息,这很难说这是一个好方法。