问题在于Gradle会尝试在已声明的存储库中查找此AAR文件。而“libs”目录不是存储库……但您可以像这样声明它:
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
Gradle会找到它。
当你创建一个新的Android Studio项目时,你的顶层build.gradle文件将包含buildscript和allproject部分(参见下文),如果您插入
flatDir {
dirs 'libs'
}
如果将其放入buildscript的repositories中,它将无法工作。
您必须将其粘贴到所有项目的repositories中,就像这样:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
}
allprojects {
repositories {
jcenter()
flatDir {
dirs 'libs'
}
}
}
repositories {
flatDir {
dirs 'libs'
}
}
compile fileTree(dir:'libs', include:['*.jar', '*.aar'])
buildscript {
// stuff here
}
allprojects {
repositories {
// all your standard stuff, jcenter, maven, etc
flatDir {
dirs project(':MY_MODULE_NAME').file('MODULE_SUB_DIRECTORY')
}
}
}
MyFancyModule/
/aars <-- aar files go here
/build
/libs <-- jar files go here
/src
build.gradle <-- this is NOT your top level gradle file
那么你 TOP LEVEL GRADLE 文件中的这行代码应该是这样的:
dirs project(':MyFancyModule').file('aars')
在我的情况下,我的库模块的build.gradle文件看起来像是这样的:
buildscript {
repositories {
flatDir {
dirs "libs"
}
}
}
我必须删除buildscript
部分,使其最终看起来像这样:
repositories {
flatDir {
dirs "libs"
}
}