在多模块android studio项目

时间:2016-01-22 18:54:47

标签: android android-studio gradle android-gradle

我在android studio中有一个多模块项目,我希望将一个.aar文件集成到一个模块中,该模块在App模块中被称为库。项目结构即:

- module1
- module2
- module3
- module4
- moduleApp

module1在module2中用作库引用。

build.gradle module2

  dependencies {
        ...
        compile project(':module1')
    }

模块2和其他模块在App模块中引用。

build.gradle moduleApp

dependencies {
    ...
    compile project(':module2')
    compile project(':module3')
    compile project(':module4')
}

我需要将.aar文件作为库集成在module1中,因为它需要来自module1的实现。我以正常方式进行集成:

build.gradle module1

repositories {
    flatDir {
        dirs 'libs'
    }
} 

dependencies {
    compile 'package.name.of.aar:myLibrary@aar'
}

然而,当我运行gradle sync时,我收到错误:

failed to resolve package.name.of.aar:myLibrary@aar in module2
failed to resolve package.name.of.aar:myLibrary@aar in moduleApp

我应该怎么做才能让module2和moduleApp找到.aar库?我应该在build.gradle文件中包含更多内容吗?

2 个答案:

答案 0 :(得分:0)

尝试更改

dependencies {
   compile 'package.name.of.aar:myLibrary@aar'
}

为:

dependencies {
   compile ('package.name.of.aar:myLibrary@aar'){
      transitive=true
   }
}

或者,只需添加:

compile 'package.name.of.aar:myLibrary@aar'

到module2和moduleApp

答案 1 :(得分:0)

由于您使用的是带有flat repo所有模块的aar文件,它使用module1(在您的情况下为module2和应用程序),您需要aar文件添加到您的build.gradle存储库中:

  repositories {
            flatDir {
                dirs 'libs'
            }
        }

并添加依赖项:

dependencies {
   compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
 }