繁体   English   中英

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

[英]Gradle build failed to resolve aar library dependency (trnql sdk)

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

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

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

在此输入图像描述

项目结构如下:

在此输入图像描述

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

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

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

和gradle会找到它。

当您创建一个新的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'
        }
    }
}

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

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

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

repositories {
    flatDir {
        dirs "libs"
    }
}

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

并尽可能完整:让我们说你希望你的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')

把你的aar文件放在libs目录中,然后修改你的build.gradle文件的一部分,如下所示,区别在于你在编译fileTree时错过了* .aar

repositories {
    flatDir {
        dirs 'libs'
    }
}

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

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

编译'com.trnql:lib-release:1.0.0@aar'在“compile fileTree ...”下面的列表顶部

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM