我使用的是几个.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应该在子模块和主模块中都可用。