无法在库模块中使用本地.aar文件

aga*_*aga 5 android gradle android-studio android-gradle-plugin

我有一个aarsocialauth功能的Android库添加到我的项目.我把它放在这里flatDir描述的目录中,它工作得很好. 现在,我将我的一些代码移动到名为的库模块中,以便在另一个项目中重用它.将完全由库模块使用,所以我把它移到了重写的文件中.从现在开始,我无法构建我的项目,因为出现以下错误:
commonssocialauth-androidproject/commons/libs/build.gradle

Error:A problem occurred configuring project ':ScrollApplication'.
> Could not resolve all dependencies for configuration ':ScrollApplication:_developmentDebugCompile'.
   > Could not find :socialauth-android:.
     Searched in the following locations:
         http://dl.bintray.com/populov/maven//socialauth-android//socialauth-android-.pom
         http://dl.bintray.com/populov/maven//socialauth-android//socialauth-android-.aar
         https://oss.sonatype.org/content/repositories/snapshots//socialauth-android//socialauth-android-.pom
         https://oss.sonatype.org/content/repositories/snapshots//socialauth-android//socialauth-android-.aar
         https://repo1.maven.org/maven2//socialauth-android//socialauth-android-3.2.pom
         https://repo1.maven.org/maven2//socialauth-android//socialauth-android-3.2.aar
         file:/home/artem/Workspace/scrollandroid/libraries/socialauth-android-3.2.aar
         file:/home/artem/Workspace/scrollandroid/libraries/socialauth-android.aar
     Required by:
         scrollandroid:ScrollApplication:unspecified > scrollandroid:commons:unspecified
Run Code Online (Sandbox Code Playgroud)

错误说依赖解析器试图socialauth-android.aarproject/libraries文件夹中查找,该文件夹是我项目模块之间共享的所有公共库的文件夹.但我已经写在我的project/commons/build.gradle文件中flatDircommons模块project/commons/libs!此外,jar包含在其中的所有库project/commons/libs/都可以在构建期间找到任何问题.

这个问题的根源是什么?

以下是我的build.gradle文件(为了简洁起见,删除了一些代码,例如依赖声明):

project/settings.gradle:

include ':ScrollApplication', ':commons'
Run Code Online (Sandbox Code Playgroud)

project/build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0-rc1'
    }
}
Run Code Online (Sandbox Code Playgroud)

project/commons/build.gradle:

apply plugin: 'com.android.library'

repositories {
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
    mavenCentral()

    flatDir {
        dirs "libs"
    }
}

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile(name:'socialauth-android', ext:'aar')
}
Run Code Online (Sandbox Code Playgroud)

project/app/build.gradle:

apply plugin: 'com.android.application'

repositories {
    maven { url "http://dl.bintray.com/populov/maven" }
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }

    mavenCentral()

    flatDir {
        dirs "../libraries"
    }
}

configurations {
    apt
}

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 21
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile project(':commons')

    compile fileTree(dir: '../libraries', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)

Upd:添加了项目结构

??? build.gradle
??? commons
?   ??? build.gradle
?   ??? libs
?   ??? proguard-rules.pro
?   ??? src
?       ??? androidTest
?       ?   ??? java
?       ??? main
?           ??? AndroidManifest.xml
?           ??? assets
?           ??? java
?           ??? res
??? gradle
?   ??? wrapper
??? libraries
?   ??? aws-android-sdk-1.7.1.1-core.jar
?   ??? aws-android-sdk-1.7.1.1-s3.jar
?   ??? libGoogleAnalyticsServices.jar
?   ??? supertooltips-3.0.1.aar
??? scrollandroid-hg.iml
??? ScrollApplication
?   ??? build.gradle
?   ??? proguard.cfg
?   ??? ScrollApplication.iml
?   ??? src
?       ??? main
?           ??? AndroidManifest.xml
?           ??? assets
?           ??? java
?           ??? res
??? settings.gradle
??? stacktrace.txt
Run Code Online (Sandbox Code Playgroud)

And*_*Guy 8

似乎commons正在构建库(可以单独编译以验证吗?)但应用程序不是.Gradle有一些特殊的规则来处理传递依赖(依赖嵌套在其他依赖中),因为它commons依赖于它socialauth-android.

尝试在"project/app/build.gradle"中的"flatDir"属性中添加一个额外的目录

flatDir {
    dirs "../libraries", "../commons/libs"
}
Run Code Online (Sandbox Code Playgroud)