无法在更高级别的模块中解析.aar的依赖关系

时间:2016-05-26 16:27:48

标签: android android-studio gradle libraries aar

我使用的是几个.aar文件中的某个SDK。简而言之,他们在我的项目中导入它的说明是

  • 将.aar文件放在" libs"模块中的文件夹

  • 添加到build.gradle(对于每个aar文件):

    compile(name: 'xxx-release', ext: 'aar')
    
  • 添加到build.gradle:

    repositories {
      flatDir {
        dirs 'libs'
      }
    }
    
  • 清理项目,同步gradle

这适用于一个简单的项目,但不适用于我的项目。我的项目是从多个模块构建的:

  project
    mainModule1
    mainModule2
    mainModule3
    sharedModule1
      libs/xxx-release.aar
      libs/x.aar
    sharedModuleX

我有三个主要模块,用于应用程序的不同变体。这三个模块依赖于许多其他模块。这些(子)模块在主要模块之间共享,并包含各种应用程序功能。我们付出了很多努力,使应用程序尽可能模块化。在其中一个共享(子)模块中有一个libs文件夹,我在其中添加了aar文件。该模块的build.gradle(sharedModule1)包含"依赖项"和"存储库"块。

只有那个模块会使用那些aar依赖项,所以我更喜欢将它们保留在模块中。此外,aar的SDK的供应商推荐相同的。

sharedModule1的依赖项有效,Gradle不会抱怨它。 但是,我在主要模块上出错了。显然他们也依赖于aars,但依赖关系无法解决。

对于每个主要模块,错误看起来像是:

    .../MainModule1/build.gradle
    Failed to resolve: :xxx-release
    Failed to resolve: :etc-release

如何让这些依赖项工作? aars应该在子模块和主模块中都可用。

0 个答案:

没有答案