Gradle构建无法解析aar库依赖项(trnql sdk)

时间:2016-01-18 22:06:36

标签: java android gradle android-gradle

当我尝试使用gradle构建项目时,出现以下错误:

Failed to resolve: com.trnql:lib-release 1.0.0

似乎找不到libs文件夹中的android存档文件(aar)。 build.gradle文件的dependencies部分如下所示:

enter image description here

项目结构如下:

enter image description here

aar文件是有效的,它只是由构建系统解决。我该怎么做才能解决这个问题?

6 个答案:

答案 0 :(得分:38)

这里的问题是gradle会尝试在其中一个声明的存储库中找到这个aar。 libs目录不是存储库...但你可以这样声明它:

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

并且gradle会找到它。

答案 1 :(得分:15)

当你创建一个新的Android工作室项目时,你的顶级build.gradle将有一个buildscript和一个allproject部分(见下文),如果你插入

flatDir {
            dirs 'libs'
        }

部分进入buildscript的存储库,它将无法工作 您必须将其粘贴到allprojects的存储库中,例如:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

答案 2 :(得分:4)

就我而言,在我的库模块中,我的build.gradle看起来像:

buildscript {
    repositories {
        flatDir {
            dirs "libs"
        }
    }
}

我不得不删除buildscript位,以便它最终看起来像这样:

repositories {
    flatDir {
        dirs "libs"
    }
}

然后它能够​​同步,然后建立。

答案 3 :(得分:2)

尽可能完整:让我们说你希望你的AAR在子模块的另一个目录中....

然后在TOP LEVEL项目的build.gradle文件中,您将执行以下操作:

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 FILE中的行看起来像:

dirs project(':MyFancyModule').file('aars')

答案 4 :(得分:1)

将aar文件放入libs目录中,然后按如下所示修改build.gradle文件的一部分,不同之处在于,在编译fileTree时错过了* .aar

repositories {
    flatDir {
        dirs 'libs'
    }
}

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

答案 5 :(得分:-4)

依赖项需要位于依赖项列表的顶部。

compile'c​​om.trnql:lib-release:1.0.0@aar'在“compile fileTree ...”下面的列表顶部。

相关问题